Maxmind is popular here, but there are alternatives. I found this extemely simple tutorial that I've been using on a couple of pages; results have been workable so thought I'd share it:
Get Users Location With JQuery and Ajax
Frank
Get Users Location With JQuery and Ajax
Frank