I found a few examples suggesting Google AJAX APIs.
This link typifies the advice I have found so far: http://briancray.com/2009/05/29/find-web-visitors-location-javascript-google-api/
However, the location is often wrong with the Google APIs.
Other sites seem to know exactly which city I'm in, though, without me entering any information.
Suggestions? Is there something cross-browser (ignoring IE6) and reliable?