Because America is the great American melting pot of so many different names, cultures and countries of origin, we tend to just choose names that we like for our hero and heroines and names we dislike for our villians. This isn't good enough. We've got to be true to who our characters are, correct for the time period we're writing in, and the place we've set the story.
One of the problems I've struggled with is having several characters in one story with names that begin with the same letter. I don't know why I do this. It could cause unnecessary confusion for my readers and I know better. But I still find myself doing this anyway. So I end up correcting it during my edit revisions.
In Promised Blessings I had Evan and Elliot.
In Faith Endures I had Alyse and Avery.
I'm in the process of choosing new names for Faith Endures, but once you begin to think of a character as a certain person, it's hard to give them a new identity--even if their characterization doesn't change. You think of the character by that name. So try to think of something similar that may still mean the same thing. For instance, I'm changing Alyse to Elyse.
Other ways I like to choose names is through Genealogy research of known family surnames in the area of where my books are set. These are accurate and appropriate. Tombstones and census records will tell you who lived in the area and when they lived there. You can't get more accurate than that, although keep in mind some of the spelling variations were different from place to place and family branch to family branch. This is because of dialect in regions, illiteracy, and people changing their names to accommodate the new area where they are living. Some great genealogy resource sites are http://www.ancestry.com/ and http://www.rootsweb.com/. These sites will get you started in the right direction.
These are just a few thoughts to keep in mind when you set out to name your characters or you go through a mansuscript with deep edits and revisions.