the program GIMP (its free to use and download and similar to photoshop) has a very simple way of doing exactly what you are asking for without a lot of picking and masking. I know this because I learned photo editing and painting on GIMP before I went to photoshop and was shocked that photoshop didn't have this fast and easy way of taking all the white, grey out and keeping a smooth look to the the black without a lot of steps.
When you are in GIMP the process is as follows:
1 Open your document (i.e. black and white photo)
2. Right click on the photo in layer menu select "add Alpha channel"
3. Go to the Color Menu at top and select "Color to Alpha" a window appears showing the color and hit okay.
That's it. Your done. Takes like one minute.
You can save it as a photoshop file or anything else
Also The color picked is defaulted to white on black and whites but you can color pick any color you want. It doesn't leave a bunch of ragged edges.