Cheap, as in non-oem, inks could be the problem.
On the sharpening/quality side of things, I am personally doing the following prior to printing a picture.
I am using photoshop. I am cropping my pictures to be the correct size in inches, and setting the resolution to be 300 per inch (don't want to raise the argument on dpi/ppi!).
I have found on my monitor, a zoom of 33% is pretty much identical 1:1 screen to print size.
I then zoom in an extra notch, so the screen is twice the size of the final print. If what I see is acceptable sharp/edited, then I print.
The colour side of things though, you need to get a calibration of some sort done.
To make things 'perfect' you should calibrate both the monitor and the printer, if you intend on not going back to OEM inks and supported papers.
A cheaper alternative, suggested by some printer companies online. Is to make a print, then create a colour adjustment layer (assume there is a similar function on your software). In this layer, make the screen look like the print.
Then create a new layer underneath this for colour adjustment, and modify the image using this layer until the image on the screen looks good.
This is not a perfect way of doing things, but can help to tweak a problem out quickly without external hardware.