Now I'll consider the inks you're using. Numerous tests, by computer magazines, have shown that you don't have to use manufacturers' own inks to get good results. However, they've also shown that some inks are far better than others. If you're buying from shops, markets or computer fairs, I recommend looking for the 'Print Aid' brand. If you're buying online, I recommend InkCycle:
http://www.inkcycle.co.uk/
Now I'll move on to something which rarely seems to get considered but is possibly the most important factor of all; the paper. You state that you're printing on photo paper but you don't state which photo paper. It's tempting to think that, because the printer will deposit the same amount of ink on any paper, it can't make much difference to the colours you see. Nothing could be further from the truth.
By way of example, I've just taken a look at what I've got here next to my desk and I'll tell you the results I get from them. (I've got a Canon Pixma iP3000). If I print a test picture, including skin tones, pastel shades and bright colours (with the printer's settings in line with the paper manufacturer's guidance), this is what I get:
Kodak Ultima Photo Paper: Very good results and quite close to the screen representation. Even so, for a really special picture (e.g. for framing as a gift), I'd probably run off several copies, while tweaking the printer's settings, for a 'near perfect' picture.
Kodak Everyday Picture Paper: Skin tones take on a marked reddish tinge. The results for, say, landscape pictures are OK but they're lousy for portraiture.