"Reveal the magic behind subtype polymorphism" is a decent article on polymorphism.
It talks about the four types of polymorphism: coercion, overloading, parametric, and inclusion (sub-type). Most OO developers are comfortable and familiar with the first two. Since the article is java focused, it can't really give example of parametric polymorphism (templates in C++), but it still talks about the principals of this type of polymorphism.
The last type for polymorphism, inclusion, s the one that is the least understood. In fact, it's the one that I always ask about when interviewing an OO programmer.