I figure it's time to buy a dedicated programmer and looking at the Arduino IDE is seems to natively support AVRISP, USBTinyISP & USBasp. Could people please suggest the most suitable/versatile of these to buy.It will probably be a cheap eBay device unless the cheap devices are unreliable.

Bought one of these a couple of years ago and it has served me well:http://www.ebay.co.uk/itm/USBTiny-USBtinyISP-AVR-ISP-programmer-for-Arduino-bootloader-Meag2560-uno-r3-/400368767664

I too have a USBtiny programmer and it's been great for most uses. But it has fundamental problem programming a mega2560 board in that it can't write to the larger address space the the 2560 uses. Even Adafruit the original suppliers of this programmer notes the restriction, so it's funny that ebay seller has "meag2560" in it's title.

Not the warning on the adafruit ad for the USBtiny programmer:

Quote

It cannot program chips with more than 64K of flash, such as the Atmega1280/1281, or Atmega2560/2561

Atmel AVR ISP MKii,Can do bootloaders, sketches without bootloader, all the ARV devices.

Costs $35, and many people struggle finding the correct USB driver software to work correctly with the arduino IDE. But I agree it's the most advanced programmer of those listed in the IDE programmer menu and worth the money, I'm just too cheap to get one.