I use a small outdoor-gps unit from Garmin, the etrex.
Advantage: Regular GPS-functionality is built-in (just in case you get lost

)
To transform the native-format into gpx and read it from the unit, I need
1. Serial Cable
2.
http://www.gpsbabel.org/ (open-source and very useful for GPS-file-operations)
Geocoding:
Also there is a useful (and free) tool from Google available:
http://code.google.com/p/gpicsync/It can do the transformation on RAW and DNG (of course also with jpg).
It writes either just in EXIF or in EXIF and IPTC
One word regarding precision:
This is over-estimated.
How precise is the reading you get from a TOPO50-map?
In the field 50 m are just nothing, especially as e.g. streets are not shown in their real size.
Also precision of the GPS-units is going to increase, once Galileo (European version of GPS) is activated, as you will be able to get a reading from both systems: GPS and Galileo. This will be helpful especially in narrow city-canyons.
In my opinion, time-stamping is precise enough.
With the eTrex you are able to adjust the tracking mode to either a time-difference or a movement (coming back to the plane).
But how long does it take you to take a picture? How far do you really move within 30 s in the field?
I actually work with steps of roughly 60 s. When I synchronize, I find out, that about 90 % of all pictures fit into this scheme...
There are lists available which show Countries in dependency from GPS-coordinates.
We use this on
www.castogo.com for indetifcation of the Country of uploaded and geo-tagged media.
Hope, this was useful.
Greetings
Andreas