Well here is one way but it will depend on the colors of the image to start with. I chose a colorful image and chose to keep blues and purples while turning everything else to BW.
Start by converting the image to LAB color.
Set up a hue/Saturation correction layer and turn the saturation to -100.
Bring up the Layer Options palette and and modify the blend if sliders as follows. Select the b channel from the drop down menu. Move the slider as indicated. Use the option/alt key to split the sliders as indicated.
Here is my final result as a before and after gif.
Maybe this will work for you too?? There is no masking required and this took me less then 30 seconds to complete.
Give it a try!