There's been quite a bit of talk about Code Generators lately. Now, personally, I think some kinds of code generation are great, if somewhat misused sometimes. However, I got a chuckle this weekend out of Paul DiLascia's ".NET GUI Bliss" article on MSDN Magazine, where he says "An important corollary is that code generators are bad".
What I find even funnier is that I agree with both Paul and John on the topic.... there are places where code generation is the right approach, and places where just avoiding code altogether is even better. Paul's example of UI design is probably a great example of this (the code-only model of the Winforms Designer actually has serious disadvatanges... but that's a story for another time).
P.S.: I fully agree with John's observations on OOP and reuse.