Giving away for free is a different issue though.
I am all for volunteering for two reasons.
1. It increases your own value
more than by selling cheaply. You will find that doing things for free gives you kickbacks often far in excess of what you would have recieved if you had asked for a small payment initially.
2. It is great advertising if it is for an education or non profit organisation.
Giving your software to a university means that the next generation already has had a sample, and if it is a quality piece of work they will want to keep using it when they leave and then they will pay for it. (or get their boss too).
Selling cheap = bad
Giving the the right places free = good
Confusing I know