Lisp macros are what make lisp extensible. They make it extensible in a way that make it indistinguishable from language features.
The best simple explanatin I found for macros is this one [0].
In a rough sumary: you could add to lisp any "missing" functionality -present in another language- with just macros (without altering the compiler/interpreter), and this functionality would work as if it was in the compiler/interpreter from the beginning.
Remember that Common Lisp, at least, has many different types of macros. The most common are ordinary s-expression macros (macros that look like s-expressions and output an s-expression at compile time).
However, there are also symbol macros and reader macros as well, each of which are used to make Common Lisp massively extensible and an amazingly expressive language.
The best simple explanatin I found for macros is this one [0].
In a rough sumary: you could add to lisp any "missing" functionality -present in another language- with just macros (without altering the compiler/interpreter), and this functionality would work as if it was in the compiler/interpreter from the beginning.
[0] http://www.gigamonkeys.com/book/macros-defining-your-own.htm...