Sorry if I'm preaching a gospel that some have heard before, but what suits me is a very simple approach to colour management that works (for me!). I'm not criticising anyone for doing it a different way, but if you're having trouble then perhaps try this.
IMO it's important that an image looks right not just on PS and on your printer, but also to other people who may view it. It is quite possible to set up your image editor and your printer so the two look right and near-identical, but the image may be way out when viewed outside the editor, or on another machine, or on the web.
My first step is to use a
test image and view this in Explorer - not in PS, PSP or an image editor which may apply a profile. Use your monitor settings or a monitor calibration tool (again, not from within an editor) to adjust the monitor so the image looks right. In particular, the flesh tones should be natural, the contrast should be right and there should be no colour cast in the b/w image. You can also check the black and white points and colour gradation using patch bars such as
these.
Most monitors allow you to adjust gamma, contrast and other parameters to achieve good results. Beware of the calibration tests that have a solid rectangle surrounded by horizontal lines, and ask you to match the tone of the two - this may work fine on CRT displays, but in my experience it is very unreliable with LCD.
The next step is to produce the same results in your image editor. With PSP this is simple - just make sure that Monitor Calibration in the Tools menu is set to 0,0,0 and that Colour Management is disabled. This ensures that PSP does not change the monitor parameters from what you have set globally. With other editors you may be able to do the same. I'll say again that (IMO) there is no point in having images that look good in Photoshop CS (or whatever) and not elsewhere. Elsewhere is what matters to most other people who will be viewing your images on their screens!
The final stage is to calibrate the printer. Most photo paper manufacturers recommend a default setting for various types/makes of printer, and this is a good starting point. Make a test print, and compare it with the (now 'correct') screen image. Make any adjustments using the controls in the printer driver - CMYK, gamma/lightness/brightness so the print looks like what you see on the screen, more-or-less. The tonal balance will vary according to lighting conditions, so don't expect it to be an exact match in different light. Having found the right settings, you can usually save these as a Custom Profile which you can apply easily in future. You will probably need a different profile for each type of paper you use.
Remember that a monitor's output can change with age, so recheck every so often. Also, there may be slight variations between different batches of ink cartridges or paper, and print head wear can also affect the balance, so some tweaking may be necessary from time to time.
I won't be offended if you think that this method is no match for 'proper' calibration with ICC profiles etc. All I can say is that it works fine for me, to the extent that I've never felt the need for anything more complicated. What I see on the screen looks right, and what I get from the printer is a very close match. It was never as easy in film days.