Given a Box2D world and some moving bodies, sooner or later two of them will collide. Physics games rely on collisions for most gameplay features. When a bird smashes pig's castle in Angry Birds, it is thanks to collisions; when the idol falls down the totem and breaks on the ground, that's due to collisions.
Box2D already does all the required tasks to solve collisions and run the simulation without any coding on our part. By the way, in some situations, we need to interact with collisions for a gameplay purpose.
Think about Angry Birds, hitting hard on a wooden wall will break it, but normal Box2D collision routines do not manage wooden wall breaking. Moreover, if the Totem Destroyer idol hits the ground, the level fails but again Box2D just manages the collisions without caring about the gameplay rules.
That's why sometimes we need to analyze collisions, and luckily Box2D allows us to do it thanks to contacts: objects created by Box2D to manage collisions between...