To make areas sound culturally distinct, come up with a number of words that can be attached to places as pronouns or suffixes, or refer to general features. If you decide that 'krag' is the Dwarven word for mountain, it makes sense than several Dwarven citadels will include it; Durnkrag, Helmcrag, etc. Words for ports, towns, rivers, forests make sense. Then as the culture dominating changes, some of those names will be rendered into the local language. New people might give it a new name that represent who lives there (Elf Wood). It's okay to have the culturally dominant group names appear as standard compound words.
As many places are named for people as for geographical features (or a geographical feature that was named after a person). Finding out what common names are in the region helps generate names for places. If Ash is a name, than Ashford, Ashbridge, Ashton, and Ashesville are all plausible names of a place that someone with that name was important to. Not every town includes a suffix; the town could just be Ash. If there's a statue dedicated to the founder (like Jebediah Springfield) all the better.
Towns will often refer to a commercial feature (mill, bridge, ford, smithy); in the hinterlands they may be built up around a fort and take that name.
Compound names in a foreign language will still usually make sense if you're generally consistent. Terms like 'greenveld' might not be common in English, but people will have a sense of what a veld is if you apply it to grasslands and not mountains.
Considering how many people have invested in learning fantasy languages (like Klingon, and Valerian), I'm leaning toward using real-world languages in the future. I'd rather a player that was really interested in the world learn Czech than Valerian.