A friend / client pointed be to the Baby Name Visualizer (requires Java), which has been making the rounds recently. It is an amazing tool to visualize a large, unwieldy set of data. In this case it is the the historical popularity of names in the U.S. since 1900. Use your mouse to highlight any given name to see its popularity through the century. Click on a name and get its popularity graph. Type in a partial name, and see the names in a group.
For example, "Jack" was most popular in the early part of this century, falling out of the top 100 in the 60's. But it has made a resurgence, along with Jackson, in the last decade. (And my father thought "Jack" couldn't be a name on a birth certificate. Harrumph.) "Jonathan" wasn't much more popular, though combined with "John" it has a lot of adherents. "Jonathan" has become much more popular since I showed up on the planet.
You can even look at the first letter to see that "Y" names, while never popular, are more prevalent in the last few decades than previous, similar with "X" and "Z" names. But "W" names show the reverse. And "R" names showed a large hump in the middle decades, though they are still quite popular, while "E" names showed a drop in the middle decades and have rebounded somewhat. Sadly, you can't do wild-card searches or combined name searches that don't start with the same letters to account for variants like "Jon" and "John."
They even have a blog, The Baby Name Wizard, along with their book and other services.