At GenWise we are currently investigating using the Microsoft DSL tools for code generation. I must say I am really impressed by what Microsoft has done with this tool. Not only make it possible to model your ideas, but also to instantiate that model and make incarnations for the real world. It is highly customizable and expandable. Together with string templating you can make very useful code generation environments. It takes a specific way to look at your implementation though if you want to preserve your own additions to he generated code. You will have to implement lots of base classes and code for partial class use from the beginning.
In general the extensibility is not so well documented, and there seems to be only a few specialists around. I do not know if we will come to a marketable product at this point in time, but I'm sure if you keep an eye on Genwise.com that sooner or later you will be able to find more about our DSL adventures.