You can't change the background of an image, it doesn't have one. You're changing the background of the hyperlink and since it wraps perfectly round the image you're probably changing the background but can't see it. You need to set the original image as a background rather than a foreground image e.g.
Code:
#home a {
background-image: url(images/home.gif);}
#home a:hover {
background-image: url(images/home_over.gif;}
<div id="home"><a href="#"> </a></div>
The problem with that is that you will get a very small link so your best bet may be to put a transparent gif (ugh) in between the <a> tag which is the same height and width as the image for the background