1) The intrinsic qualities of the people there.
2) The systemic forces that drive their interaction.
Let's assume the people who visit Reddit are fixed, at least in the short term. So what can we do to alter the ways they interact so that each one leaves the site a better person than when they came?
The current design simply rewards stories that are the most popular. The problem with this is that there are basically four types of valuable stories: Insightful, interesting, informative, and funny (a la Slashdot).
In terms of what makes you a better person, the order is generally:
1. insightful
2. informative
3. interesting / funny
The problem is that the stories that are interesting and funny tend to get votes very quickly, driving the insightful and informative stories off the screen. (Partly this is because you can tell if something is interesting or funny from the headline, but you need to read the whole article before deciding if something is insightful.)
The are currently subreddits based on topics, but once again it's the interesting stories in each subreddit that are pushing out the insightful ones. If we have Anna Nicole Smith on the front page, then we have whatever the science equivalent of ANS is in science and the programming equivalent of ANS in programming.
So of course people aren't coming away from Reddit as better people. Because all the stories that would make them better people are being squelched because of the systemic forces of the system. I don't even read Reddit anymore for this reason.
It's not as if it can't be fixed though. Reddit has the stories it does because they designed the systemic forces to encourage those types of stories. They could just as easily be redesigned to encourage other types of stories.