I have been asked this question countless times by countless number of people. Some out of inquisitiveness, others out of desperation for their newfound career.
I have also been at the querying end of this question, initially trying to answer it myself, and eventually seeking out people who had the same answer as I did.
Being one of the more "senior" guys around, I usually get the typical on-time on-budget with quality BS from the "juniors".
"Yeah right." I tell them, whilst sipping my morning coffee.
Whereas being on-time, on-budget, and all that jazz may sound good and PMistic. I for one narrow the whole thing down to two words.
MANAGE EXPECTATIONS.
To me, that's more than enough to fill a PM for life. Everyone involved in a project has got an expectation of some sort. Being in the middle of it all, one has to know how to balance each person's need with everybody elses. This includes knowing who to prioritize and how to tell a customer that his project is late and/or overbudget. This includes telling your team that they have to work overtime since there was a delay in the raw materials, etc. And in doing all these and more, everybody has got to be happy. Weird right? But that's the job we signed up for.
So, having said that, what's the one skill needed by all Project Managers?
Communication.
If a PM, cannot communicate, he cannot be a PM at all. It's that simple. I have yet to meet a good PM that cannot communicate well. It's near the word impossible and one-in-a-million. You cannot manage anyone's expectations if you cannot communicate. Note that communication is not all verbal. A lot of this involves body language, gesticulation, tone, et al. If a PM cannot get the message across, he cannot set the expectations.
It's as simple as that.
And if this wasn't clear - then maybe I need to start switching jobs too.