Define 'clean'? I pretty much update my library all manually... if I accidentally do something to iTunes I just delete everything and re-import the Music folder.
As far as tagging goes, I wrote a Visual Basic program to bulk tag and rename MP3s a wee while back, but it only handled ID3v1 tags so it was more useful just for renaming files and the tagging all had to be done manually in iTunes (which is surprisingly good for it -- iTunes is actually a bit of a file cleaner in itself as it can fix or even convert your ID3 tags to different ID3 versions). Nowadays I use a Linux application called EasyTag to organise everything and so from there my music collection gets imported to gmusicbrowser on Linux and iTunes on Windows. iTunes is a bit deficient in that the library doesn't update itself automatically so you need to reimport what has been updated (which I find annoying... so I frequently just delete everything and import fresh). A lot of other applications (such as gmusicbrowser, Songbird, probably WinAmp) use Watch Folders, so your library gets automatically updated when files change outside of the application.
But uhh... I'm a perfectionist with my music... I can easily devote a day to cleaning it if I am procrastinating or otherwise unoccupied..
Everything must be named, tagged and filed consistently!