Names are wonderful, powerful things. Handle with care.
Baby name books are a must for any writer -- or at least they were before the internet came along. Personally, I find a book quicker than slogging through baby name sites hell-bent on clogging the page with banner ads. I have one that's organized by ethnicity and lists language origins and meanings for everything. That was great when I wanted German names that were pure German, not rooted in Latinate languages or the Bible/Hebrew.
Sometimes, you want to be that particular about the names in your story. Sometimes you don't want a name that sounds modern, familiar, or is easily traced to a particular ethnicity. Maybe you want something with a particular "sound" to it. Something smooth, something harsh, something with r'a'ndom punc'tu'ation. (Makes my eyes roll every time. Establish that it's a glottal stop, or that contracted names are culturally acceptable, or don't do it.)
It has long been noted that it's a good idea for names (human, geographical, etc,) in a story to be consistent -- as in, follow set patterns for each ethnic group represented. Names are, of course, a result of a group's language and traditions, and convey certain ideas to the reader even if it's on a subtle, subconscious level. Consider: John, Jean, Johannes, Ivan and Ian. All the same guy? Slightly different?
The master at this is, of course, Tolkein, but most of us don't have the chops to generate entire languages to back up our nomenclature. Still, since an author should do nothing accidentally there are easier ways to build this into your world.
Short of building whole languages, here are three ways to synch up your names: use an existing pattern (language) to generate names, use your own pattern, or play it by ear.
I've collected a fair number of links to fantasy name generators, over the years. Here's my list. If you know of more generators (not just name lists), post them in the comments!
Random or pattern-based:
Yafnag • Totro • Rinkworks
Lowchen • Behind the Name
Multiple generator sites:
Springhole.net • Donjon • GameDecor • Serendipity • Seventh Sanctum
Using existing languages
Existing languages do provide a fairly consistent "sound" for names. Google's translator covers an impressive number of languages, and you can use those words straight up as names or mash and mangle them as you please.
If you want something that's not on Google's list, there are online reference dictionaries out there. They aren't as easy to use as Translator, but they're better than nothing. For example, I used this Anglo-Saxon dictionary while I was writing Hawks & Rams.
Say the names aloud. Yell them like a mom who's just found her favorite vase broken (that will require a full name, the universal sign that you're in big trouble.) Cut them down to the shortest possible nickname. Or the rudest possible.
Unpronounceable names have their place. But if you're going to saddle a major character with one, recognize that there has to be something short, sweet and pronounceable that other characters can yell across a crowded room to get their attention.
That's my ultimate test for a name. In the real world, anything three syllables or more will get cut down to one or two. Heck, two-syllable names often get cut to one. If anybody knows of someone who acquired a nickname longer than their actual name, I'd love to hear about it.
Do you play it by ear?
Where does naming consistency fall on your priority list? For me, it's tied into voice and world-building -- and you know how I am about world-building. :) I've been doing some of that recently, so this has been on my mind.