Yahoo! provides a geocoding web service: give it a location in free-text, it returns the latitude, longitude and full address.
You can make up an application id, it doesn't seem to matter.
Google also provide a geocoding API:
This needs a valid developer key. Output formats include XML, KML, CSV and JSON.