How should power be supplied for in-system programming?

If the programmer does not supply power (OFF): should I connect the +5V and GND pins from the programmer to the same +5V and GND as the target board, which is powered by another source?

The jumper most likely physically disconnects the +5V pin, so it doesn't matter. Keep GND connected in any case, because the devices require a common reference level to guarantee a reliable communication.

If the programmer does supply power (ON): should I power the target board completely from the programmer, so that I pull the +5V and GND on the connector to VCC and GND on the target board? If so, the programmer would be the only power supply.

Yes, its probably best to completely disconnect the external power supply in that case. Connecting two different DC voltage sources in parallel is almost always a bad idea. Keep in mind, that USB (2.0) can only supply 500mA@5V max, while the programmer will also consume a few mA itself.