I currently use the maxmind webservices for client-side resolution in a commercial application. It's reliable but expensive enough that I'm looking for alternatives. I'm currently experimenting CloudFront's location request headers for a massive savings.
Where maxmind is $0.0003 per query. And my CloudFront concept is $0.0000015 per query.