The laws are based on emotions and racism, and the general public is ignorant, as are the politicians who make the laws. It's the classic attitude that throwing money and police at a problem will stop it, and this doesn't work on drugs because both the buyer and seller are consenting to the sale. This is what separates legalizing drugs vs. legalizing other crimes... there is no non-consenting party involved in the transaction and you're trying to stop people from having control over what they put in their own body.
If cigarettes were made illegal today, and their price went up to the range of marijuana, do you think everyone would just quit, or would people take on behavior resembling the stereotypical drug addict? All evidence points to the latter, but ignorance keeps the public believing the former.