I have found that Coinbase.com is the best site if you can wait a few days. They recently stopped allowing you to purchase them at the current rate though. Now you are provided coins based on teh value when the tranfer clears. Kind of risky since you really have no idea what will happen to the price over the course of 4 days.
If you need them now I would suggest bitinstant.com. Overall it costs about 10% in fees but it is processed in under an hour generally. No more than 24 hours.