I sometimes happen to be in a dialogue like this:
X: According to GPL, you can sell copies of your software at any price you want, right?
X: But your customers can in turn sell copies of your software at any price they want, right?
X: So, the only way a GPL developer can make money is by charge for development of their software?
Me: Not only for development: also for maintenance, improvements, customisation, installation, training, gadgets, support...
The market is quite big, actually.
In fact, one can even make business by selling the software in a box, if one makes a box that people would like to have (for example, including things like useful documentation, a few gadgets, a support contract and a pony).
The idea is that the business of selling software alone is a useless extortion that provides no particular benefit to the user (and in many cases, no particular benefits to the developer either). If you put that aside, there is a plethora of ways to charge the customers more, and for things and services that are useful to them and make them happy.
Actually, if you develop a GPL software for someone who is then happy about it, they may then pass it on to other people in the same sector. Who then maybe need help with installation, support, maintenance, custom features, training, gadgets and ponies. If your software hits the spot, a niche market can end up growing by itself.
The last discussion on this topic then ended up with another question:
X: Ok. But to do a good job you have to be many people at once: for example you sometimes need to be a sysadmin as well as a developer.
Me: Yes. Being many people at once is what starting a company is all about.
The license of this post is GPL. The FSF and any of their regional chapters
are welcome to use all or part of this text, with or without modification as
they see fit, alone or included in documents that use any license they see fit,
even some of the not really free ones they use sometimes, such as the one used
by Selling Free Software itself