Geocoding is an extremely common need - from postal services to demographic analysis, there are plenty of jobs that require you to turn names into places and vice-versa.
Challenges
Geocoding is difficult for a number of reasons. Street names are often misspelled, and even official city sources and signage varies significantly. The formatting of street names - order in which house number, street type, street name, city, and country are placed - varies between cities and countries. Address points also can either be precise in data, or estimated by choosing equidistant places along a known address range on a road.
Data
The data required to run a worldwide geocoder is significant and not readily available. Commercial sources like the Google Maps Geocoding API are based on proprietary data, and often require restrictions on the output. In the US, the largest source of address point data, controlled by the USPS, is not available for public release because of potential privacy concerns.
Tools
There are many geocoders available, with varying levels of performance, coverage areas, and granularity.