<p>I'm having issues with color matching css background colors with colors in images on the same html page. What gives?</p>

Three possibilities spring to mind:
check that your monitor colour depth is set to 32- or 24-bit, not 16-bit
check that the image isn't being assigned a palette (such as the web-safe palette). This might be the case for a .gif or 8-bit .png image.
check for .png gamma correction issues in IE - see other posts for details
A workaround that I have used in the distant past is to set the background colour by repeating a small image, instead of setting it in the HTML. This kind of trick was useful in the days of web-safe palettes and so on, but less useful now.