I am investigating into ways to add an additional geotargeting component to request forms. I tried the free database at HostIP - which is a grassroots geotargeting service based on volunteers - and more often than not it says "I have no clue where you come from". Pro: they are offering city level resolution.
Then there is the commercial service of MaxMind. They go down to organisation level (including ISP) but they charge you an arm and a leg even if you request city-only. Results are pretty good though but problematic with some dialups. They have a free service too, but it only resolves the country.
What I am looking for is the "middle way". Getting the country right is a MUST, don't finding the city should be an exception. Moderate pricing would be preferred.