You know how your JPEG files have information stored about shutter times, focal lengths, your camera etc? Well, all of that info is stored in something called Exif tags (Exchangeable image file format). If you are geeky enough to ever have looked at the EXIF data specifications (more easily digestible on Wikipedia), you will have noticed that there are fields for co-ordinates inside the JPG file, much like GPS systems store world-positioning details.
The fact that you can store EXIF data in JPEGs means that your photos can be tagged with very precise geo-positioning information. The first time I came across this commercially was Navman, with their NavPix system, allowing you to take a photo of your destination, and then navigate there (if it’s useful or not is a different question, but some publications have thought of some interesting uses for it…). Of course, in Japan, it has been possible to link JPG with GPS data for ages.
Either way, there are ways to make this whole setup more photo- and less navigation-specific. Tim, for example, has created a system which links his Nikon D200 directly to a G0PS system, tagging the photos as you take them, and then create a visual gallery through the power of Google Maps! Nifty.
Other tools:
RoboPhoto allows you to link photos to maps Kenneth Hunt has a good roundup on GPS Exif and implemetations.