Yes, there is a 2012 presidential candidate who supports the legalization of marijuana.

He's name is Gary Johnson, a wildly popularly former governor of New Mexico who stepped down because he could only govern for two terms.

He used to be a smoker himself in the early 1970s. However, when he discovered that they hindered his productivity, he quit using it, along with alcohol and certain sugars.

Nevertheless, he supports the rights of others to use marijuana - in a way that allows the government to tax and regulate it.

He blasts the current drug on war as utter failure.  He said the following in an interview with Reason:

Drugs account for half of law enforcement spending, half of prison spending, half of court spending. What are we getting for it? We are arresting 1.6 million people a year in this country on drug-related charges, and it's a failure.

On heroin, he supports government maintenance programs to reduce harm.  He believes administering the drug to addicts in a safe, controlled way is better than having them use unclean needles and commit desperate acts to scrap together money to buy the drug from dangerous criminals.

Johnson, which many describe as a Libertarian, is also a supporter of school vouchers and privately built roads and prisons.