It took me a few books to locate it, the best description that I could find by quickly searching was in Effective C++ Second Edition by Scott Meyers.
I think though, that if you just design your abstract class appropriately than a pure virtual destructor is not necessary. BTW I also read that all inheritance hierarchies should use an abstract base class.