ICC profiles and attempts at calibrating color space between various devices is another deep topic that often causes you to pull your hair out in frustration. I've been an Adobe Photoshop user since version three, way back in the dark ages. Things have changed a lot to say the least.
It really boils down to WHAT you're trying to accomplish. Many excellent articles on the web and also built-in Photoshop's excellent online help system on this juicy topic. The general idea is to as much as possible "match" how colors look on your monitor, to hopefully "match" as much as possible hard copies from a home or commerical printer, on other devices like a tablet, played back on a tv and if burned to a DVD and so on. Easier said then done since each device typically has its own "color space" and thus the rub since it is rare to find two devices using the exact same color space.
What IS Color space? Swiped and paraphased from Wikipedia: A color model or abstract mathematical model describing the way colors can be represented as numbers, typically as RGB and CMYK color models. However, a color model with no associated mapping function to an absolute color space is a more or less arbitrary color system with no connection to any globally understood system of color interpretation. Clear as mud, right?
Since many reading this are serious hobbyists or beyond what I suggest is first picking a default color space and application to be your control and default color space everything else is based on. My choice is Photoshop, mainly because it gives you so many options.
The devil in the details. Why I'll never know, but Adobe loves to fiddle and move features around. I'm using verson 12 from the CS5 extended 64 bit part of a master suite with over 15 applications. You might have to look elsewhere then below.
In version 12 go to Edit, Color Settings, just to see what some options are. Next open a few test images, then select assign profile. Note by default Don't color manage is selected. Many will find this the easiest choice since Photoshop won't nag you every time you open a file. However if you want to get fussy, spend some time playing around to what the impact of different profiles. Some are striking.
Select profile then click on the little down pointing arrow and see the beweilding options available. If you are luckly and have one of the more popular printers you might find a profile designed to "match" that printer. If not, you probably can find and install one. You can of course simply test each profile listed and of course install even more.
What Photoshop will do is use some caculations to "match" as much as possible the color space your printer or other device uses. Don't expect absolute perfection. It should be close. The only way to know for sure is print out a few samples from difference sources and compare them to what's seen on screen to your hard copy.
Caution: If you have more that a throw away cheapo printer it do likely will have many options that can work with or AGAINST the profile you select. So again experiment. Also if printing to photographic stock like glossy paper don't forget to set your printer accordingly or you won't get the results you expect. I've been using a Canon MP600 with excellent results for a couple years.
The downside to "color matching" in Photoshop is if enabled is will nag worse then your mother-in-law EVERY time you open any image. If an image already has a matching profile, fine. If not Photoshop will nag if you want to use the one your selected or another one. Which can get annoying quick.