Surprisingly, I have found the best deals with the big banks (Bank of America, Wells Fargo). At Bank of America, if you have more than $50,000 in your MerrillEdge account, you get 30 free trades a month. A similar deal is to be had at Wells Fargo.
The trading system is not as advanced as some other places, but you save a lot of money on commissions. This also lets you do different things with your money, such as buying a small amount of stock every month to dollar cost average (not as feasible if you're paying $7 on each transaction).