WARNING: don't bother buying the one that comes with firmware preloaded or the one with the programmer. The programmer you get is not the one on the product image. It's another incompatible programmer (no real usbasp). The firmware loaded by default is v2.2 so you'll want to upgrade to the latest (more stable) version anyway.
By default the board comes with some version of firmware pre-configured for +Copter. The problem is, I don't know anything about the origin or version of the pre-loaded firmware. The HK manual goes into lengthy detail on how to update the firmware before it even shows how to mount and use the board so I guess it's assumed, if not recommended to update the board before use? A lot of people won't like the default + configuration and to fly in the X config, or even Tricopter config for that matter, a firmware flash is required.
The next problem to overcome is the AVR Studio 4 software not recognising my USB programming interface. This is where the "KK Multicopter Flash tool" comes in handy. Not only does it recognise my programmer, it puts a nice GUI frontend on the AVRDUDE software and automatically shows a list of compatible firmwares for the HK board. Just select the one you want and it will download it. The software author makes mention on his page that the HK board comes in a state that protects the firmware can't be overwritten and he also gives the specific command required to unlock it.
Once that's done open the Flash tool (java required), select Programmer: usbasp (USBasp, http://www.fischl.de/usbasp/), Controller: Hobbyking Quadcopter Control Board (4kB flash) and select the firmware flavour you want to use.
I had to copy the contents of the folder "...kkmulticopterflashtool_0.21\lib\avrdude\windows" to a new folder I created "C:\WinAVR\bin" because the KK Flash Tool assumes WinAVR is installed in that path.
Hit the little green running man button and away it goes. All going well it should end with a message something like "...flash verified. avrdude.exe done. Thank you."