Imagine you want to redirect users to the correct country page in your site. In this case you need to get access to the ip geolocation in real time. GA won't help you there.
http://www.maxmind.com/en/geolite_city_accuracy
It's less accurate than their commercial offering, but good enough in many cases. For ease of use, there's a nice C API (https://github.com/maxmind/geoip-api-c) and wrappers like pygeoip for Python.
http://www.maxmind.com/en/city http://nginx.org/en/docs/http/ngx_http_geoip_module.html
Anyway, this 'quality' should be free anyway ;-)
Why not check both rather than just one?
ipinfo.io thinks I'm in Brisbane, which is slightly more accurate (although also less specific), although still about 25km out.
It gets my Location wrongish here on the Gold Coast, but not too far out. We have huge suburbs though, all of the GeoIP DB's seem to think im in the wrong suburb, despite having a static IP on Telstra cable.
I use it for my bitcoin client: https://github.com/bit-c/bitc