Names go through periods of innovation or conservatism. There have been points in English history where more than half the people had one of 10 common names. At other times, parents have used names from new sources for their children or even created names. Since the 1960s, the United States has been generating more new children's names than any culture in history. Where parents used to choose names mostly from their own family history, it is now very common for parents to look for new names--so that today, names like Jennifer, Ashley, and Tori can be assigned to specific decades. (Sixty years from now, Ashley will conjure up the same image that we get from Mildred).
Baby name books are a major source of new names--most parents pick up a book with a list of names and "meanings" in it. For the most part, baby name books are crap. Almost every name you'll find in a book was detached from its meaning centuries or millenia ago. This is a summary of the various kinds of names you'll find, how they got there, and what they *really* mean.
Saints' Names: Many of the most popular names are derived from the names of saints. Although Christian saints have been venerated since the 2nd century, the practice of babies after saints really caught on after the 12th century. These names were chosen to associate the baby with that particular saint, who would function as their "patron," protector, or example. In many churches, children are still supposed to be named after a particular saint.
Biblical Names: After the Reformation, the practice of using saints' names fell out of favor and it became more common to use names from the Bible--in English, the King James Bible. Of course there was some overlap between Biblical and saints names (names like Paul, Mark, and John are found in both sources), but after the Reformation it became more common to use names from the Hebrew Bible. Names like Isaac, Jacob, and Samuel became common among Christians (although they had always been used by Jews), and in some places it became popular to use very obscure Biblical names like Ahijah and Azariah. Sometimes a saints name was re-introduced in another form: Hannah, for example, is just the spelling of Anne that was used in the King James Bible; it was used because it was in "the Bible."
Two-Element NamesOld names in many European languages are often composed of two common words that are put together. This appears to be a very ancient naming pattern, since it is found in Greek, Slavic, Germanic, Celtic, and Romance languages which began to separate from their common root at least 3500 years ago. Each language had a limited set of words that could be used as first or second elements--commonly, men and women used the same sets of first elements but different second elements.
The "meanings" of these names were treated differently in different cultures. Old English and Old German names show combinations like "war-peace" that make no sense at all; Greek combinations seem to be more closely connected to their meanings. However, it's generally safe to say that these names haven't been attached to any particualar meaning for at least 1500 years. In Old English around 800 AD, some families shared a single first element--so that a father named Ælfwine might name his children Ælfred, Ælfwyn, and Ælflæd, and Ælfthryth. Again, the sound and history of the name was important, but the meaning was not. These two-element names have entered English from a variety of languages: some (Edward, Ethel) have survived from Old English, while others (Conrad, Roger) were introduced from German or indirectly from Old Norse by the Normans. Many of them have been altered into unrecognizability--Ralph and Audrey were both two-element names that have been modified over the centuries.
Surnames: By 1400, most people in England had a surname--a family name that was passed on from parents to their children. Many of these surnames are now used as first names in English. This has happened mostly for two reasons. Sometimes a child would be given his mother's maiden name as a first name, as a way of honoring that side of the family. However, sometimes the name of a prominent and ancient family would be taken as a given name by people with no relation to the family. Howard, Stanley, Percy, and Neville are all names of English noble families from the Middle Ages that have become widely used as given names. More recently, Tyler and Hunter have been introduced through the same method.
Classical Borrowing: In the 1600s and 1700s, when every educated person was very familiar with Latin and Greek mythology, poets would an obscure mythological name--either a minor character or a rare name for a deity--as a psuedonym for the subject of their poetry. Many of these names became used as names, especially for girls. Some classical names were used as far back as the Middle Ages, but the more obscure classical names didn't spread into English until later. Cynthia and Melissa are two of the most common names that derive from early modern classical references. Other names (like Olivia) were invented to sound like classical names, even though they aren't.
There are, of course, other sources for names. Some modern names are taken from other languages, or really do derive from common words. Still, although there are exceptions, it is generally the case that if you don't immediately recognize the meaning of a name, it probably doesn't have the meaning that a baby name book assigns to it.