If memory serves me correctly, google does this for the maps site. I know google\'s mobile maps app can determine the rough location (I assume using some kind of cell tower
This is Not possible.
1.) Location By querying Network Details.
Even if you get the approximate location from an installed app by querying network or cell-id details, it'd not be that reliable. You won't be able to perform anything based on that approximate location.
2.) Location By querying IP.
Secondly, in one country, a single telco will have it geo-stationed GPRS or EDGE gateways and all devices on network are connected to internet with that gateway. So basically you can't rely on location details by IP, because that would be the IP of the Gateway and not the IP of device(in case of EDGE).
Ultimately, if you need to do anything that is based on the location, the location itself needs be precise and not approximate.