In addition to Solution 1:
This is just one of basic methods. The problem is not as simple as many think. In professional photography, real re-touch masters choose different approaches for different scenes, depending on the purely artistic goals. One of the method is to put saturation down. Another very popular method is to take just one of the R, G or B channels; which one? again, depending on the scene. The generalization of this approach is using two or three channels as gray, balancing them with different weights. Other effects and filters are applicable. And you can implement any of these approaches.
Basically, the answer depends on the imaging library you want to use. Please see my comment to the question. For some more detail, please see my recent answer:
how to ımage process wıth c#[
^].
Next time, please don't forget to tag your question properly.
Also, I highly recommend to look for a great open-source library AForge.NET:
http://en.wikipedia.org/wiki/AForge.NET[
^],
http://www.aforgenet.com/[
^].
For the problem you are interested in, putting this library to use can take just a few minutes. The library is well documented and complete with plenty of easy-to-understand code samples. Its author, Andrew Kirillov, is the CodeProject member. Please see his articles on the topic:
http://www.codeproject.com/Articles/Andrew-Kirillov#articles[
^].
Good luck,
—SA