A colleague of mine asked whether IP addresses could be "approximated" to physical location. As with most IT questions, "it depends" was a response I used frequently. Is there a service or program that can take a list of IP addresses and find/approximate the physical location to where the IP is?
There's a free MaxMind GeoIP database, which I think is queryable online (or you can download the database and query against it). They also sell a more accurate database (as do other companies, I'm sure, but that's the one I know about).
I'm not sure you can do much better than this XKCD comic.
More usefully, there are sites like this one that will tell you the location of some IP addresses, although this and the link I had a few minutes ago don't seem to do that well on my test addresses.
GeoIP databases, as folks are already mentioning, are the approximation of what you're talking about. The problem is that they're just that, data, and data that can be faulty.
As someone who works for a cable provider, whenever we do a fiber node move or shift a block of IPs from one CMTS to another, we can sometimes drastically mess up those databases until they're corrected.
As Maxmind explains:
Buried deep within my answer to the duplicate question womble referred to is the URL:
http://www.geody.com/geoip.php