I used one to build a photobooth for my wedding. The raspberry pi controls a DSLR camera to take 4 photos, stitches them into a 4x6, prints the photo and uploads everything to a Google Photos album which was displayed live on a projector.
Another challenge was that I couldn't find a good application to display the Google photos album. Nothing I found would display any new photos added to the album after the slideshow had begun while also displaying everything in a continuous loop. I ended up writing a second small Python app also using picasawebsync to periodically sync the photos to a second Raspberry Pi which was hooked up to a projector and display them looped in a random order.
Here's a list of cameras that gphoto2 supports: http://gphoto.org/proj/libgphoto2/support.php
I made sure to buy a DSLR that supported live-preview so that our guests could frame themselves before the photos were taken.