Robert C. Martin originally made these points - I can back them up from my own experience:

 - You will automatically build a regression test suite of unit tests as you go.
 - You will hardly ever spend time debugging, as if you code yourself into a hole, it's easier to undo your code to the point when the last test passed, rather than crack open a debugger.
 - Every few minutes you verify that your code works - all of it!

I pretty much do TDD all of the time, whether I'm working on production or play code; I find it difficult to code any other way these days.