I've written lots of collision detection algorithms using lots of different techniques - however, the Minkowski is one of the best - it's very flexible easy to understand (especially in 2d).
The following gives a tutorial/visualization for working with the Minkowski algorithm.
While the algorithm can work with any 'convex' shapes - this demo focuses on 'boxes'.
Screenshot of the test demo of the minkowski different for collision detection and feature extraction demo.
The demo is interactive and runs in a web-browser - you can drag your mouse around and it displays the minkowski information (and the collision feature data).