From what I understand, BSD, MIT, and Apache licenses all allow another person/company to use the source code in a closed-source, commercial project, as long as they provide acknowledgement. GPL requires that any project using the code will also be released as GPL. GPL will reduce the number of people who can legally use your code, but it helps to keep improvements in the public. Those are the most important differences in my opinion. Your opinion determines which one is best for your project.
(Edit: You really should read through the licenses, though, in case "what I understand" is incorrect.)