To understand Lisp is to understand interpreters. With that understanding you can create domain specific languages which is extremely powerful. But I wouldn't recommend using Lisp itself.. macros in particular are unhygienic.
You can do cool stuff with unhygienic macros, however, like anaphoric macros. Interested readers should check out On Lisp by Paul Graham, as well as Let Over Lambda by Doug Hoyte.
http://blog.racket-lang.org/2008/02/dirty-looking-hygiene.ht...
And http://blog.racket-lang.org/2011/04/writing-syntax-case-macr...