the GPL doesn't prohibit charging for a gpl'd product or product containing gpl code. the catch is, you have to provide the entire source code upon request for your product if it contains any gpl code.
redhat linux is a good example of this. redhat enterprise linux is a commercial product, not available for free. but since it's based on gpl code, redhat has to provide the entire source tree. the good folks at the centos project recompile the source tree, and essentially "give away" redhat enterprise linux.