On Lisp is Paul Graham's book on Common-Lisp macros (also known in some Scheme systems as DEFINE-MACRO). It is a very good ressource for learning those kind of macros, and features great discussions about the essence of Lisp.
The book focuses on extending Lisp to include nice amenities, by using macros. They're used to implement a wide variety of stuff, from small idioms to complete mini-languages for a given task. The goal is to adapt your language to the problem instead of adapting the problem to your language. It explains well what is meant by the following quote:
Lisp is a programmable programming language. (John Foderaro)
It is available online in multiple formats:
Note: To convert the texinfo document into a info readable document using Emacs, use the command:
makeinfo --no-split ol.texi ol.info
then add it to your dir file in your info directory.