The on board debug is generally limited in its ability to debug hardware issues, where as the ICD allows you to debug at hardware level. The on board debug consists of a boot-loader and debugger software preprogrammed in the chip of interest that can provide debug information about the various status registers, variables etc., using a serial communication and PC software. The on board debugger cannot provide info about the logic state of the buss lines or other interface circuitry. The ICD on the other hand emulates the microcontrollar in question, thereby providing in depth information about the controller operation. Yes, ICD's are expensive because they have additional hardware to simulate the microcontrollar. Hope this answers your question.
Info you provided is quite misleading.
ICD doesn't have any kind of microcontrollar simulation. It uses one interrupt vector, two pins of microcontrollar and few memory locations of address space. Hence it is quite limited in functionality. Break-point provided are just one or two at a time.
On chip debug provided by PIC32 is JTAG based is somewhat true Debug interface similar to what Pentium of Intel provide in current PC technology since its 32 bit i386 processor. Study how Intel processor provide on-chip Debug interface and you will realize why PC is most successful Processor of our time and very easy debugging interface with its vast on chip debug registers. Because of this excellent Debug mechanism provide by Intel, all kind of cracks are possible to write in Software and is may be the one reason of existence of great forums like Sonsivri and access to free software. Also just because of this debug mechanism, Virtual PC technology exist.
Difference between ICD2 and PICkit2 is that ICD2 can provide 400mA (2W) of power to external target PICmicro development board while PICkit2 just provide Debug interface. So while debugging with PICkit2, you have arrange for power supply of external target board yourself. Now why price difference of US$ 100 to 150 between ICD2 and PICkit2 is merely Marketing strategy and mainly due to useless high salary paid to these Marketing Managers who doesn't understand real requirements of supporting good debugging mechanism at lower cost.
With best regards,