How to drive brushless motor with Arduino?
Actually sometimes you just MUST make your own ESC. ESCs sold on the maket are "commercilized" and have their own control codes for RC stuff like airplanes, helis, cars...

For example sometimes you need to have a double side regenerative brake. From back to stop and from forward to stop. There is NO RC ESC that has that feature. They either have only one regenerative brake from forward to stop or none. Or you may need a sensor control BLDC but there are only a few sensored ESCs in the market, and they only have (the same for common sensorless ESCs) built in features that you do not need and don't have some that you absolutely need!

Designing your own ESC is a perfect choice and much cheaper even than the cheapest $10 one with HUGE power.

It is true that the control code and the hardware can be a pain but after some reading it is just a toy.

There's a good tutorial here on how to make a BLDC controller with an arduino using 6 mosfets and some other stuff you can easily find at Jameco's site (very nice)
This is where I buy my stuff for cheap but spurkfun can be a nice alternative if you don't find some sensors like gyros, etc.

http://www.instructables.com/id/BLDC-Motor-Control-with-Arduino-salvaged-HD-motor/

very nice and easy to follow guide. You can make ANY power from low to ultra high ESCs using this guide and almost any combination of regen brake, using resistance, motor windings or battery charger...

Using mosfets is just a toy, you can do almost anything.

The prob is that you can't control this mosfet very efficiently with an MCU like an arduio board which outputs only 5V I think and the gate voltage of the mosfet for medium voltages is pretty much higher in the range of 16-30V easily. So you must use some other tansisor to step up arduino's voltage.

Good luck.