I ran across this post about different skill types among programmers and it struck a chord. I've seen a great many places described as looking for "The Best Programmers", implying that the rest of the programmers need not apply.
As that post notes, those places may be missing out on some other Best Programmers due to their different approaches to things. However, I think that it is also a bad thing to expect all your developers to be the best at their craft.
If every company is gunning for the best, the salary budget will be stressed - if they are the best, won't they expect the best pay, or at least more than the average/market rates? So there will be smaller teams, or fewer teams of a given size, which means your company will not be able to work on as many things. This might be ok in a startup, where the goal is often a single product with relatively few sections, but in a large established company, there can be hundreds of projects.
And then what happens when your Bests decide to jump ship, because your projects no longer excite them, or the next company offers a better deal? You will have to hire some lesser lights, and then either you will hit a slowdown in your development rate, or you will see problems.
Of course, if you let slip that the current team is not regarded as highly as their predecessors, you'll have a morale issue. Nobody likes to be looked down on, especially if they are working hard.
So think long and carefully about the phrases you put in your job ad, or you might end up driving off some people that would do a great job.