How you name your characters and what meaning those names have will set the tone of your story. It establishes from the very beginning some of your intentions. While you can write a serious epic fantasy where the main hero’s name is Dave… you probably shouldn’t. When a reader sees a name for a character, it sets up some expectations. You can invert those expectations for humor… but not much else. If you have Draggor the Daggerlord, Warlord of the Seven Steppes, he probably shouldn’t be a friendly, cheerful sort who isn’t into fighting (except for humor, and even then, only if that’s the kind of story you’re writing).
You should have some basic idea of culture and societal make-up when you go to pick a name as well. Yes, you can have Han Li Qan in a European-style medieval setting, but should you? If he’s that out of place, it’s going to be jarring to the reader. When you do something like that, you need to have everyone comment on his outlandish name and demeanor or else you’re setting yourself up for difficulties.
Picking names that fit your setting and society is only the first part. Readers have developed certain expectations. Impressive titles generally go to important (or at least arrogant) people. Similarly, most illiterate peasants get by with a single name. They generally don’t need more growing up in a community where everyone knows them.
In a similar vein, names with meaning or using words as names (such as Craven, Malice, etc) should be done in a way that isn’t too heavy-handed. If you have a scum-sucking cowardly backstabber who gets named Craven, well, you might be signalling to your reader a bit too much. Oddly, it’s even worse if you’ve based the character after a real person (yes, I have known a Craven, why do you ask?) You can use such names to signal things to a reader, particularly if such names are “nom de guerres” and the character has some other name, just don’t do it too often to the point that it stands out.
Use of names from mythology or with religious connotations can similarly be a bit heavy handed. If a reader sees Thor, Zeus, or Moses, they’re probably going to roll their eyes a bit if they’re not reading book whose basis is those legends or religions. A show like Supernatural or book series like Dresden Files can get away with some level of this because it draws so heavily from mythology. Doing so in a fantasy setting not related to Earth can be problematic… especially if you don’t have a culture equivalent to the myths you are pulling from. You can use names from mythology, but I’d recommend sticking to more obscure figures rather than central ones.
There’s a variety of useful ways to find appropriate names. One of the most popular is also fairly simple. Draw from baby books. It works well enough for real parents, so it should work for your imaginary babies, too. Most baby books (or websites such as Behind the Name) provide not just hundreds of names, but also origins of names and their meaning. This is an invaluable resource, particularly if you want to set up an underlying theme.
Another resource is random name generators, but this can be extremely problematic. You’re going to get a lot of really odd names, often having no central features that tie together to your background. Pulling from name generators that use a list of existing names would be a better bet. You can find a variety of those just by searching.
Lastly, a name can be used as a point of contention for your characters. If someone has been saddled with a name that practically demands they go forth and do battle, you can set up underlying resentment and angst over this. You can add to this with titles like “The Chosen One” or “The Boy Who Lived.” These are things that demand a greater destiny… and here’s where inverting expectations can work in your favor. Maybe that character is a Chosen One… but so are fifty others and they all have to fight it out cage-match style to determine the final Chosen One. Maybe that prophesy about “Dave” doesn’t mean what the characters think it means.
Using names to set expectations, to build reader immersion is a good thing. Just as you write, be certain you are using those names to good effect. Don’t agonize for an hour over the name of the bartender, unless that bartender is going to have a bigger role. You can just call him the bartender and move on.
On the flip side, if you want to plant red herrings, that’s a good way to go. Having Dave the Chosen One and Hero meet Dave the Bartender, knowing about the Prophesy of Dave can be a great way to counteract the reader’s automatic assumption that Dave the Hero is going to win out. It’s also a good way to show that the world is much bigger than the characters you’re writing, that other important things are happening beyond the cast the reader gets to follow.
Lastly, don’t ever let finding the “right” name sidetrack your writing. You can always use a placeholder (Dave32) that you can come back later and replace. The most important thing is to finish, then you can come back and fix things.