The new GraphicConverter 6 ($35 new or $20 upgrade for this venerable and invaluable Mac app) has an option to manually geocode photos, but it is so well-hidden I suspect few people will find it.
UPDATE 2009-01-06: The geotagging interface and capabilities of GraphicConverter 6.2 are considerably different, I will post an updated review. The new version includes the ability to automatically geotag photos using a GPX track. ENDUPDATE
2. Install the GraphicConverter Contextual Menu (this will come up as an install option, or you can do it from the menu GraphicConverter->Preferences... Plugins
You have to logout and back in, or reboot, for the contextual menu to activate the first time.
As far as I can tell, the Contextual Menu only appears in the GraphicConverter browser
3. Launch GraphicConverter browser.
Launch Google Earth and position your cursor at the precise location you want to geocode.
Switch back to GraphicConverter (e.g. using Apple key and Tab to switch applications).
Select photo(s) to geocode.
Select terribly-named menu item (right button contextual menu) "Set GPS from current Google Earth position" (it really should say "Set GPS-EXIF ...").
Photos with GPS-EXIF have a little world icon in the upper right of their browser thumbnail.
You're supposed to be able to view geocoded photos in Google Earth using menu item "Show Position in Google Earth"
but I couldn't get it to work.
I know there are other tools out there (it would be nice if this was built-in to iPhoto 08, but I haven't seen any info about that). You're welcome to list other Mac or web tools in the comments, I also have some of them listed on my geocoding photos page. I thought it was worthwhile going through GraphicConverter since it's a very common/popular Mac image editor and the GPS-EXIF feature is really buried and obscured.
For Windows, there is a much nicer and easier manual workflow using Picasa and Google Earth.
UPDATE 2008-01-10: I have reviewed the Mac program HoudahGeo, as suggested in the comments.