Well, plus there's the whole version management and packaging and hosting and distributing giant amounts of data.
If you are an indie team that makes a 50GB game and has 50k players, distributing and update management would be a gargantuan task without Steam or something like it. 2.5 petabytes of bandwidth isn't cheap.
Yes what they do is profitable, I'm not saying that it isn't. But paying for what they do is (clearly) still more attractive to developers than rolling their own infrastructure to do the same.