Earning money and return
We are among the one's who earn money with OSS developers. We distribute a version of Linux (Conectiva Linux) and several other Linux and web products. But the prices of those products are so low that it's impossible to survive only with that so we sell a bunch of related services (including assistence).
So what are we giving to the community in return?... Well! For instance, we made a portuguese spoken forum for Linux available to all. We write articles for a few sites. We are planing to produce a portuguese site like freshmeat, and above all we cooperate with several web OSS products translating versions to Portuguese.
One of the things that distros do some times to return some money to the community:
sponsering events, contracting some developers so they can mantain theire project rolling, publishing reviews at a low cost, developing software in-house and giving it to all, etc, etc, etc.
So you see that there are many ways to contribute.
We support the OSS but we also develop specific software for some of our clients. And one of the things that developing free software gives is that people (or we may say future clients) can see that you know what your are doing. Doing free soft could be a way of doing self promotion also.
Sorry for the bad english but I'm portuguese :-)