O usi le immagini nel markup o usi gli sfondi. Io suggerisco la tecnica dell'image-replacement. Un esempio sbrigativo:
codice:
Blog
Mettiamo caso l'immagine che vuoi usare abbia larghezza e altezza pari a 200 px; nel CSS faremo:
codice:
a {
   display:block;
   text-indent:-1000em; /* Nasconde il testo */
   width:200px; height:200px;
   background:url(immagine_normale.png) no-repeat 50% 50%;
}
a:hover {
   background-image:url(immagine_stato-sopra.png);
}