Program: PS CS2, but is most likely translatable to any program if you know it well enough.
Notes: There are so many different ways to accomplish this - this is just the way I do it.
Starting with this: Courtesy of so_alone_at_ehc
Desaturate duped layer - Image>Adjustments>Desaturate:
Using the Magic Wand tool (Tolerance: 30, Anti-aliased, Contiguous), choose which areas you want to remain the original color. Choose multiple areas by setting the tool to Add to Selection or holding Shift while clicking. It also helps to zoom in - makes for easier selecting.
In this case, I will choose the hair and eyes:
Go to Select>Inverse - this will select everything BUT the original selection.
With the desaturated layer active, click the layer mask button at the bottom of the layers window. This will automatically mask the image, only showing the hair and eyes:
If anyone knows a different way, feel free to comment with it and I will add it to the post.
Please comment if you have any questions!