Personally I'd say WinPicProg - but as I wrote it, I'm probably a little biased?
But it was the worlds first Windows PIC programmer, the first to include a dis-assembler, and is probably still the fastest?.
However, today I would highly suggest using an ICD2 clone like the InchWorm, because it will always be upto date, as MicroChip update the firmware as they release new devices.
For parallel and serial programmers, IC-Prog is still highly recommended, and WinPic800 has a good few admirers.
Like anything else, 'best' is a very sibjective term.