The best tagging software I've used is MusicMatch Jukebox.
It does id3 tags as you would expect, but also goes both ways. If you have proper tags it can rename the song and vice versa. Also, if you have none of the above it will do the following:
1. Pull info down from the 'net from cddb
2. Use the filename to try and find a song on the 'net
3. Use other peoples databases or id3 tags
4. Let you make your own (and allow others to use)
It also lets you mass-rename based on fields in whatever order you choose: artist, title, CD, track no etc..