The thing is, IMO, that rewards should only come for commodities, and services, both of which require labor. I do not consider SW a commodity. If you're a programmer, you should, and still can using the GPL, recieve your cash as:
1)wage - in the case that you are employed (long-term) by a company that pays you to develop specific SW for them. Case Linus Torvalds, OSDevLabs. The company gains their $$$ from 2), 3), 4) and 5).
2)fees for tailor-ordered SW - if you develop SW for people with specific needs on a pay-per-developed-program basis. My sister's husband made a ton of cash that a company payed him TO develop a database system to suit their needs.
3)sales - nice-and-colourful media containing your SW, documentation and other, unrelated merchandise.
4)services - installation, support, registering to a network, a periodic update service (i.e. antivirus SW), etc.
5)donations
The actual usage of software doesn't cause you any more work - and therefore doesn't entitle you to a greater reward.
Now IF you choose GPL, as so many people have already done, you ensure that your program has a future: the more successful it gets, the more people will be willing to contribute. If you're mega-successful, some people might even pay you to develop your baby full time (Linus).
...