To quote Martin Danner, domain specific language is a “…small, highly-focused language for solving a clearly identifiable problem. It’s all about abstraction.”
One of the main goals of a DSL is to automate mundane parts of the development process. DSLs can be divided into two categories — industry specific (vertical) and technology specific (horizontal).
For example, user interface designer surface that generates code-behind representing the user interface is an example of a technology specific DSL. in VS-Team System Architect edition the ‘distributed system’ project is an example of a DSL in the domain of service oriented architecture. Another example is UML (unified modeling language) – a language heavily used for modeling object oriented applications.
Seeing the pattern, you can conclude that DSL is part of software factories initiatives; and, in fact, that is correct.
Microsoft has a toolkit for creating your own design tools to solve problems in your domain – be it models that describe business processes, information flow, industry specific objects, etc. Check it out at http://msdn.microsoft.com/vstudio/DSLTools/.