I try to find names that sound "natural". I try to avoid mixing things like "K", "Kh", Gh" with vowels to sound exotic. I usually just find it lame...

Last time I had to develop different races and cultures, I try to find a real-world language that would fit for each one. Then I made up names mixing different words in those languages. For example, I chose welsh for the elves, icelandic for the dwarves, britton for one of the human kingdoms,... In this kingdom, the capital was made of white marble, so I wanted to name it "the white city", which is said "ker gwenn" in britton. So I simply named the city Kergwenn. Easier is better.

The other advantage of this method is that I can provide my players with lists of real-world names in those languages, which links them to the cultures they'll play in.