Grit and ability to accept critical feedback - at least in graduate school.
I am perpetually shocked by how....delicate....many people who make it to graduate school can be. Most of my favorite mentors were the ones most students avoid. My dissertation committee was comprised exclusively of the faculty folks try to avoid putting on their dissertation committee because they were "mean" (Translation: Wouldn't let you get away with doing **** science). They didn't mince words, but they were
incredibly supportive. Much more so than the ones who let students run dissertations that wouldn't have flown as a "side project" for a first year grad student in our lab.
Once practicing...as weird as it sounds, I think a willingness to not only
tolerate other people's discomfort, but actively make other people uncomfortable. Fear of this is why so many people coast doing what is basically just supportive therapy. Even knowing this, I find it easy to fall into that trap - sometimes the patient is having a rough day and you don't want to "pile on", sometimes I am having a bad day and consciously or not I'm biased towards letting the patient talk and offering supportive statements because its easier. Good therapy has to - at least sometimes - make people uncomfortable. Trauma/Phobia/OCD treatment is where its probably most apparent, but I think its symbolic of the broader process. Sometimes you have to make someone touch a toilet seat and then rub their face while they cry and squirm. Metaphorically or literally.
@Sanman - Oddly enough I still maintain "computer programming" was THE most important skill I have for doing therapy. Object-oriented programming (Java) a bajillion years ago taught me how to break down problems into components, conduct iterative experiments to identify and solve issues, and do it all while keeping the end-goal in mind. The content is obviously wildly different, but mastering that process is - in my opinion - the key to being a good therapist.