Why from-scratch rewrites are bad
I just found a very good article on why from-scratch rewrites of source code aren't always a good idea:
Things you should never do - Part I
There's also an another article on this topic at HelpfulTiger. It covers one point that this one doesn't say much about: Code Ownership. While Joel is right that many rewrites are done for the wrong reasons and in situations where refactoring the code would have sufficed, rewriting code can help your developers take ownership of the software, and will make them more effective because they know the code very intimately.
However, such rewrites require that the developer(s) who do the rewrite will stay with your company for a while. If someone comes in to rewrite your source code and then disappear, none of the developers that will later be updating the application have gained much from this rewrite. They'll simply have exchanged the set of old bugs with a set of new ones.
Heed Joel's advice; don't rewrite just because code is ugly. Refactor the existing code instead. But if you really feel compelled to rewrite, make sure the person doing the rewrite will stay in the company.
Update: Andrew pointed out that I was talking about his article. So I added the link.