I highly recommend MusicBrainz Picard for autotagging. I went through tagging somewhere around 70 gigs of music with it, and the entire experience was rather painless. It will also rename and organize the files for you as a bonus.
It looks up the data (as it should be), so you rarely will have to enter anything yourself. It sometimes helps to add data for 1 track for horribly mistagged stuff, but after that you can usually drag and drop the rest of the album.
For others, like myself, that are unfamiliar, yet very interested. MusicBrainz[1] is written in python, distributed under the GPL, and I will be trying it ASAP.
MusicBrainz is written in Perl (and SQL). MB Picard is Python. MB is a database and associated server. MB Picard is a client.
MB is a bit of a monster. If you're tagging a lot of music you may want to install it locally. My experience with this is documented at http://acooke.org/cute/Installing3.html
Personally, I was not too impressed with MB itself - ended up using LastFM's API instead. But this was for generating playlists, not tagging.
It looks up the data (as it should be), so you rarely will have to enter anything yourself. It sometimes helps to add data for 1 track for horribly mistagged stuff, but after that you can usually drag and drop the rest of the album.