I'd say it's a 60/40 or 70/30 split (Passion/Skill). The people who are passionate are the ones that are going to want to learn, improve and show off what they can do.
I've known plent of technically skilled people that are great, but they lack that fire to really come up with ideas that take the solutions we're trying to build to the next level. The passionate ones will usually try and find the solution that not only solves the problem but do does so in a unique, fun or innovative way that the client wasn't expecting.
Here's the thing though: you really need both kinds of people; a healthy mix. You need the innovators and the stock, work horse programmers to make a well rounded team. Too many rock stars or passion filled programmers and you're going to have amazing code that runs the risk of being all over the place. Too many technically skilled work horse programmers that do the work and don't innovate and your team stagnates.
Aim for the healthiest balance for your team. Every team is different and getting the mix right is a challenge, but when you have it, magic happens.