- Whenever you use firefox's search box, mozilla gets paid by the search providers, mostly google of course.
- Ubuntu sells OS to netbook manufacturers. They also charge for professional support.
- Professional support is something companies would pay for.
- Make the basic version free; Charge enterprisy features.
- There are always innovative ways, like firefox, to get revenue without asking money from the user or throwing some flashy ads.
- Collaboration with the users. Open source is very close to agile methodologies in this aspect. Probably the user collaboration is the best in open source than the usual commercial development model.
- Community who volunteers to help other users.
- Voluntary contribution in all areas of software development like code, testing, packaging, documentation, project management you name it.
- Good open source products usually don't need much of marketing; or separate training. Internet makes it possible to reach the users, rather user will reach you.
As they say, there is no such thing as free lunch. Creating a good community is the biggest challenge. Of course creating great product cannot be considered as any less of a challenge either.