Retroactively geotag photos On my iPhone, I normally turn off Location Services on the Camera for privacy.

I turned it in today for a specific event, but not before I had taken several photos without location information.

How can I retroactively fill in the location information? I know exactly where each photo was taken, and even have pins bookmarked in Maps for each location.

It needs to be lossless, no JPEG recompression. An iOS app would be nice, or a Windows/Mac solution.
You can geotag photos in iPhoto or Aperture on the Mac. If you sync them to your iPhone/iPad you'll also see the geolocations.

To do this on the iPhone/iPad itself, iPhoto for iOS may also let you do this (I don't have it to check). If not, you could try something 3rd-party like PinApp, though this will not modify the files in your Photostream (since Apple don't allow that), but can make a geotagged copy, which you can save (and then perhaps delete the un-tagged original?)

Once geo-tagged, it depends exactly where (in what application/device) you want the photo to be visible on the Map. iPhoto/Aperture can sync (via iTunes) with your iOS device to store photo albums on it (which will include geolocation info). And obviously the iOS apps let you save back to your camera roll and/or photo stream.

You could probably also email it to yourself or otherwise copy it back to your iPhone photo-stream if that's where you want it...