•In the GPL license you have the four freedoms: to run the software, to have the source code, to distribute the software, to distribute your modifications to the software. What this implies is that when you obtain the software, you have the *obligation* to ensure that these four things hold true for the next person you give it to. After all, someone had to go to the trouble of preserving these rights for *you*, so you have to do the same for the next guy.
•The BSD license is different, because it gives *you* the right to distribute the software, but it does not oblige you to make sure that the next guy has any such right. Well, that’s not really a problem, the next guy can ignore you and get the software from the same source that you did (if that source is still available). But if you change it and you give it to him, you can forbid him from passing it on.
See the Numerodix blog post for a more detailed explanation.
FossWire also has a good comparison here.
What are we going to do with our open source mobile diagnostics workflow solution? As an open source software project, we’d like to license it out for non-profit use and use in the developing world for free. But we also think it’s possible our software might be modified for for-profit use in the developed world. In this case, we would want a reciprocal contribution - a donation, either in funding or code. I’m thinking that means GPL. GPL means that if another organizations uses or modifies any code your organization produces that code must also be licensed under the same terms.