You can tell a great deal about the origin of an English town by the end of its name.
England has a long and proud history of being invaded: by the Roman empire until about the mid-5th Century, by Angles, Saxons (thus Anglo-Saxon) and Jutes (Northern European tribes from Holland and Germany) as the Romans left, by Vikings and other Danish peoples in the 8th and 9th centuries, and (perhaps most famously) by Normans in 1066.
By the time the Normans arrived, almost every modern English town already had its name, and you can tell a great deal about who settled the town (or re-settled it) based on the ending. Names that end in -ham are Anglo-Saxon; "ham" is Old English for "settlement" (examples:Durham, Clapham). Other Anglo-Saxon endings: ing (Reading), stowe (Felixstowe), stead (Hampstead) and ton (Kingston).
In Old Danish, the -by ending indicated a farm, so Whitby and Derby are Viking towns. Other Danish names: thorpe (Scunthorpe), toft, a plot of land (Lowestoft) and scale, a hut or shelter (Windscale).
-examples from The Year 1000, Robert Lacey and Danny Danziger.