While it's an old book, Ultimate NPC by Mongoose Publishing is good.
Google Image Result for http://ecx.images-amazon.com/images/I/61x8WLoHu3L._SL500_AA300_.jpg
Aside from that, I usually just make up names. For a list of race names, I usually do decide upon common themes in the culture's names as well as what sort of sounds I want those names to have. Other times, for a villain or a hero (or even possibly a race name) I will consider what (if anything) that race/hero/villain is supposed to embody, and I'll base the name on that.
An easy example is a race I created for one of my GURPS campaigns. Due to a divine curse, the whole race has the Skinny disadvantage; they appear sickly and emaciated. I played around with the word 'emaciated' for a little bit, and I came up with Maciati as their racial name. Sometimes I will mix and match word parts from different languages too.
There are also times when keeping things simple is best. Some of the most famous D&D iconic character names are jokes or plays on words if you actually sit and look at the name for a little bit. Cigam the wizard is an example; Melf the male elf is a good one too.
For town names I sometimes try to scramble the letters from a place I know and see what I can come up with. In one of my campaigns, one of the cities is Taloona. Taloona came out of a city near where I live: Altoona.
Town names is also a place where simple also works well; even in many real life languages, place names are often little more than a description of the place. In one of the games I've ran, Stunekaven (derived from Stone Haven) was a village built into a natural formation of rocks which made a good natural city wall for the people who lived there. Words for 'town' and 'settlement' are also popular as parts of town names in many settings; it's the reason why there are so many Dales in Forgotten Realms.