Most of the discount brokerage arms of the big banks are offering $9.95 flat fee per trade for customers with over $50,000 in their investment accounts (it used to be $100,000 and they have just started lowering it). I know that's the case for RBC Direct Investing and BMO Investorline. I'm not sure if the others have begun to follow suit just yet but they will.
If you don't meet that requirement, then most of them charge 1.5% for trades of stocks under $2.01/share with a minimum of $29.95 per transaction. Stocks over 2 bucks will be charged something like a couple cents per share or something ridiculous like that.
In other words, if they don't consider you a "valued customer", you'll be paying out the *ss until you build up enough money to qualify for the flat fees.
You can always try something like Questrade which supposedly charges something like $4.95-$9.95 a trade but apparently they can be difficult to deal with and their customer service isn't that great (allegedly).