I've been using quaternions for 15 years now and I still don't have a good mental image of why they work. I've just learned to accept the operations and what they do.
[1]: http://www.amazon.com/Visualizing-Quaternions-Kaufmann-Inter...
[2]: http://gamedev.stackexchange.com/questions/4801/how-can-you-...