Hello,
I personally use Google's Geolocation API.
I send the current latitude and longitude to the Google and then I process the page for the correct result.
In the example below, sending my test latitude and longitude location to Google brings back the correct address within 4 houses.
look at all the <formatted_address> in the result below
http://maps.google.com/maps/api/geocode/xml?latlng=52.5413339,-1.9213159&sensor=true
I did some testing and formulated a formula to decide which <formatted_address> to use.