GeoNames is a project to gather geographical information under the creative commons attribution license, which means it's ideal for commercial use and hobbyists alike.
The version I have contains a whopping 6.7 million. names of populated places, locations and all kinds of other things that have a name and ...