You can desaturate a photo and then restore color selectively using the History Brush Tool in Photoshop. It is very easy to do and can be done in any version of photoshop.

I took this snap of the Maidan in Kolkata with my mobile phone camera while going to office. I desaturated the image then restored color in parts with the History Brush Tool.