Naming can be a tricky beast...I believe that you want a good blend of uniqueness in your names coupled with the fact that they are not hard to pronounce. I'd say don't go too crazy on naming though
No matter what name I pick, no matter what naming culture or genre. I check if the name is shoutable. Really. I shout it. Because no matter what culture, no matter what time, names are spoken an shouted by people. If your characters parent, friend or lover cant shout the name easily, the character probably have a nickname of some kind. If the language is so foreign that I cant figure out a way to shout the name, it probably so foreign to my readers will find it annoying. Edit: And I go with the assumption of the character will grow into pretty much any name I pick. And that name never should be the coolest thing about the character, so better pick lame names. I like to pick names that are one or two generation off. The sort of things grandmothers tend to be named.
I try to go with names that are easy to pronounce, not in the top 100 list of names (aka not commonly used), the meaning fits the character's personality/biography/occupation/etc, and the origin of the name matches the character's nationality. Sometimes I just have to go with a name that goes against one or all of those criteria because it fits the character so well. This also applies to surnames. For example, I found the surname Maberley. Its origin and meaning are not definite, but it's believed to be French and mean "lovable" (from different sources). Personal experiences may also apply - I just had to go with that surname because I grew up in an area with a street called Maberley so I have become quite attached to it. For me, it's very difficult to find (or come up with) names for my characters, because I want to be able to withstand the name to the end and hope the readers can too. I'm very picky with names.
When a character comes to me they often already have a name. If not then I don't go searching for one, but rather wait until one comes to me. I'll use a common name if it fits just as I'd use an unusual one if I think it's right. I never pick a name based on it's meaning* because I think it's too overdone. The meaning of my name doesn't describe me so I don't think my characters names need to describe them either. A lot of my novels are set in areas populated by multiple minority groups (because I live in a place like this) so sometimes names will be used to reflect their backgrounds, other times not. The nature of my novels often means people will be referred to by aliases or nicknames anyway, so real names aren't always used. Eg, there are characters in my current novel referred to as "White Hat" and "La Mariposa". However, there are also characters with common names too. If I deliberately use an unusual name then it'll often be for a significant minor character to make them stand out so that they'll be memorable later, rather than an MC. * That's a partial lie. In my current WIP one of the main characters is called "Starshine" in the description, so I purposefully called her "Hoshimi" because it's written with the Chinese characters for star and light. This isn't mentioned at all in the story.
I have a hard time picking names as well. Especially for female characters. Sometimes I just go through name books or name sites like behindthename.com and see if I can find one I like with a nice meaning. I like names that have meanings that go with the characters personality. I also like ones that are easy to pronounce, and not too common. Though there are some common names I do like, that I would rather use for minor characters. I also think the name has to fit with the setting of the story and time period, for example if my character lives in Argentina and is hispanic his name isn't going to be something like Richard, or Takahasi, obvioiusly. Or if my story dates back to London 1850 I would use something like William, Henry. etc.
I have found telephone directories to be a great source of inspiration. That said, similarly to some other posters, I generally try to pick names that reflect the personality of the character. If I want a character to look ridiculous, I will give him a long and ridiculous name, etc.
I'm glad I'm not the only one that uses random name generators. I write fantasy, mostly elves, a good name generator is a must, pronunciation helps too. I run 25 random names and use three. For human names in fantasy, I use real names from the period. 11th-16th century, or even older. Severin is an old German name, comon in the 12 century. Harry Potter has Severus Snape. Same base name. Been to long, I think its origin is a pope(circa 640). The name is only important if it means something. In one of my books, the name actually relates to the story. The mother named her daughters that hints to thier true nature.
Truthfully? I have no idea how I come up with names. Sometimes I'll be writing a character and the name will just be there. Anyone know what I mean? Or when I'm writing dialogue with two unnamed characters, one will just call the other by a name, and it's there, done. Named and sealed. That's how I do it. It's weird, and sometimes I'll rename them, but it has to sound natural when the characters call each other by their names. That's how I've always done it. Though I will admit I have about 3 characters named Ayla.
http://www.20000-names.com This place has given me plenty of good naming material. The definitions often influence what I name my characters. One of my projects is science fiction, and as far as names go...well I just splice stuff together, perhaps bringing a portion of one word or name into the language of their name. A rule of thumb that works for me: If you choose to make up a name for fantasy reasons, make sure it's able to be pronounced. Or at least give them a ridiculous name and shorten it. Like the character Romanadvoratrelundar from Doctor Who. It was shortened by the main character into a more, thankfully, pronouncable "Romana." Random name generators are awesome too, especially when I have issues naming buildings and locations.
I prefer to use normal names that are not that common, but not one so rare no one has heard of it. My MCs names are Lucille, Janine, Genevieve and Krista. Completely normal names, but not that common.