Each IP address is bound to a physical host and consequently has a geographical location. However, this location is not always accurate.
If the IP address is from a private home or small company, the IP address usually points to the access router that serves a number of customers in the neighborhood. An access router in downtown Chicago will probably cover a smaller area then a router in the outskirts, so the geolocation accuracy may range from a couple blocks to some hundred kilometers. The only thing that you can be quite sure is the country of origin.
Email servers may have cloud based spam filters and web servers may have rented cloud based load balancers set up in front of them. This means that the IP address correctly points to the cloud services and not to the physical location of the server.
When people use proxies, VPN tunnels or TOR networks to hide their identity, you will be able to correctly locate the proxy server, the VPN server or the TOR exit node, but this won't help you in locating the true data source.
There is a number of companies that maintain IP based location databases. Much higher location accuracy can be obtained by analyzing Wifi networks or mobile cell information.