I don't need to explain what the problem is. The obvious solution that a lot of people suggest is "roll a tank".
Here's the thing: the problem is "built in" into the core game design. Here's why. Consider the "best case" scenario: all players are evenly spread among all available specs. What do we have?
24 specs total. Out of 24, 3 are tank specs and 3 are heal specs. That leaves 18 DPS.
So we have 6 DPS for each tank and heal. But the group size only requires 2 DPS per tank and healer. So even in the most balanced scenario we have 3 DPS for each spot. This is the best case scenario, in real situation the ratio would be a lot worse.
Problems:
1) Too many DPS specs. I don't seriously see why Scoundrel needs 2 dps specs and how to make the two different enough to justify their existence. Considering that scoundrel shares many skills with gunslinger, these two classes have FIVE whooping DPS specs with really small differences. Less skill trees also means less balancing required.
2) Group size is too small. Increasing group size reduces competition dramatically.
So lack of tanks and healers can't be blamed entirely on lack of players who want to play them.