I am a big fan of code generation based on templates. It gives all the flexibility you are expecting when coding by hand, but still
- Increase your productivity
- Decrease maintenance efforts
- Code consistency across your project(s)
- etc...
I have been using MyGeneration for a while now and I recently found a good post from Michael Freidgeim summarizing most of the good links you need if you use it.