My favorite is
Microsoft's ImageCollage. (this isn't a normal Microsoft product, it's put out -- and not really maintained -- by Microsoft Labs).
The two unusual things about this program are
- The resulting collages don't have hard edges between their pictures. They blend into one another, and it's really cool the way this can work out in many cases.
- You point it at a folder of images, telling it how many it should incorporate and the desired relative sizes between the primary, secondary, and other photos (which can be equal), and it automatically chooses them and lays them out. It recognizes faces, and tries to place the faces properly so that they don't get chopped.
I use this every year at Christmas. My wife and I produce a calendar for family and friends, where each month's picture is a collage of photos we took the corresponding month of the prior year.
I've never seen another tool do this, and it's cool enough that I really recommend that you look at it.