Se cominci a guardare a html come ad un linguaggio piuttosto che ad un lungo testo prodotto da un editor, allora comincerai sicuramente ad apprezzarne le caratteristiche (se hai dieci minuti leggi www.mibmagazine.it/article.php?id=51 ).

Dunque, id e class sono attributi di un elemento: fin qui ci siamo? Come tali, aggiungono un senso al contenuto di tale elemento.

Ora, id è stato creato per identificare in maniera univoca un elemento del documento. Tramite tale attributo è possibile - ad esempio - puntare a tale elemento tramite un'àncora o creare un nome univoco da gestire con javascript o altri linguaggi.
L'id è quindi univoco.

L'attributo class può invece essere ripetuto a piacimento all'interno del documento. La sua utilità è diretta principalmente a creare varie classi di elementi con caratteristiche identiche, ai fini della sua presentazione e visualizzazione di tali elementi.