If the charge is a misdemeanor, and the client does not have a prior record, expect to pay a flat fee of about $600 to $1,500 plus costs. But this is just an estimate and it will all depend on the particular circumstances of the case.
There's really no set rule for how much money a lawyer charges. If the amount of marijuana was less than 20 grams, I would expect a private attorney to charge between $500 and $1,500. There may be additional costs depending upon the case. Most private criminal defense attorneys would charge a flat fee. Save yourself the money and do not hire a criminal defense attorney who charges by the hour. There would also be potential court costs. A public defender (yes, they are real attorneys) would charge significantly less.
Talk to your friends. Ask them if they have ever needed an attorney. Ask them who they hired and how satisfied they were. Good luck!
I agree with the price ranges previously stated. Additional fees are often charged for jury selection and trial. I would guess that the $500 range would typically be for pre-trial representation only. That should be outlined in the retainer. I do not practice in your area but I market my practice in split fees. The philosophy behind a split fee is that you are able to potentially get a lower cost resolution than a flat fee.