Well, the sample image you give is much easier to make than a true photomosaic. The one you give is simply an array of images - easily (if tediously) arranged by hand - with a photo of Mr Bush laid on top in Photoshop with the transparency settings set to make it look like the original pictures were originally that color. (You can tell it's fake by the blue fleshtones on the faces in the President's coat; those pictures didn't start out that way.)
Here is an example of a true photomosaic, where none of the images are recolored, but laboriously arranged by hand. (To see for yourself that the images weren't recolored, take a look at the
larger version of that image.)
The program used to make that is available
here. However, it appears to be Linux only.
A few other programs can be found by Googling "photomosaic," but they all seem to be Windows-only, except for
this one.
Hope this helps a bit. If anybody finds anything better, I'd be interested to know.
EDIT
That first program I mentioned, Metapixel, can be compiled on OS X using Fink, according to the website. I don't know how to do that, but perhaps you do, or perhaps someone else here can help you.