This question is missing a more current answer.
The answer is yes, now this is possible and it is well supported amongst modern browsers (though ironically not IE10+ without JavaScript). You are looking at the filter CSS property (which does a lot of other cool stuff besides black and white).
A blog post here goes into more details:
http://demosthenes.info/blog/532/Convert-Images-To-Black-And-White-With-CSS
As well as this question here on Stack Exchange which is getting some love and worth a follow by the OP:
https://stackoverflow.com/questions/609273/convert-an-image-to-grayscale-in-html-css
And finally, an actual piece of code, shamelessly robbed from the Stack Exchange answer and tested in Chrome and IE9:
.my_image_class
{
filter: grayscale(100%); /* Current draft standard */
-webkit-filter: grayscale(100%); /* New WebKit */
-moz-filter: grayscale(100%);
-ms-filter: grayscale(100%);
-o-filter: grayscale(100%); /* Not yet supported in Gecko, Opera or IE */
filter: url(resources.svg#desaturate); /* Gecko */
filter: gray; /* IE */
-webkit-filter: grayscale(1); /* Old WebKit */
}