First off, the only reason it needs an tag is because it won't work properly with IE otherwise.
You define a new class, in this case
with the following CSS:
.cosmic a{
display: block;
width: 200px;
height: 50px;
background: url('http://my-rad-image.png') no-repeat;
}
.cosmic a:hover{
background-position: -200px 0;
}
So you see, our hover image is actually a background image which is twice as big as it appears to be, but because we're telling it to display as a "block" of a specific size, it hides everything outside that block.