I don't like Patriot's suggestions much. They aren't easy to balance, and don't really fix the real issue. The problem is rating distribution, as testforecho showed. However, he didn't factor in how easy it would be in each server to get high rating.
I think an important and unused factor is who is on each team. If you join a team where all the high rated players are on it, you will have an easier time, but your rating will not be calculated any differently than if you were on the other team, where it would be very difficult for you to get a high ppm. It shouldn't use the total match averages, but the team averages. I think this would make it more accurate, and less likely to cheat with team-stacking.