Back in 2005, when I was obsessed with the Flickr API, I wrote a number of programs for producing Photo Mosaics.
This software was originally written in Perl, but has since been ported to Ruby and then Python.
In addition to more traditional ones, like the one seen here, I also experimented with a number of interesting variations, such as Bronze Shields, which eventually led to my work with Amalgam Mosaics and Emergent Orange.
Much of this work can be seen in my Flickr Albums.
My website, coverpop.com contains a number of photomosaics, which are made using fixed collections of objects, such as this collection of top selling UFO and Paranormal book covers from Amazon:
In this case, the source images aren't tiled on a rectangular grid, but are overlapped, more like the way you would arrange magazines on a table at a yard sale. I wrote a program that computes the positions of the covers, trying to optimize for maximum visible real estate.