Are you sure it is a printer problem? Is you monitor hardware calibrated? If not, then that is the first thing that you need to do. If it is not hardware calibrated then in all likely hood you have adjusted the monitor to make an image look good to you rather than calibrating the monitor and then correcting the image. If the monitor is not showing the true photo there is no way to print it properly to your satisfaction.
If your monitor is hardware calibrated, when was the last time you re-calibrated. I try to re-calibrate once a week. With sports season approaching I will be calibrating once a week at the minimum.
If you do have a hardware calibrated monitor, does you calibration hardware allow you to also calibrate you printer and create profiles? Sounds like there are some steps that may need to be looked at before you go looking for a new printer.