Few different ways you can do it.
The Heidenhain control I'm familiar with is the TNC530, others may be different.
If you pause a program mid-cycle and just need to check out the workpiece or inspect the tool, hit feed-hold and then press the "manual traverse" softkey and move the spindle away from the work using the handwheel. You can then use the "restore position" softkey when you're done to move the spindle back into position. It will reverse the exact movements you used to retract the spindle, and you can continue running the program from here.
If you have cancelled the program, I usually start a few lines up from the last tool call. A few lines up, because I have some variables that get set just before the tool call to work with the laser tool measuring/breakage detection system that will throw an error if they aren't set correctly. If you don't use this, you can start directly at the tool call.
To do this, I use the "GOTO" button (between the directional arrows on the control) and just enter the line number I would like to start from. Cycle start and go.
If you don't know what line number you want to start from, an easy trick is to go to the program editor on the control, and cursor down to the first tool call. Hit the left or right directional arrows, and the block with the tool call will become highlighted. If you now cursor down with the block highlighted, it will scroll directly to the next tool call and you can easily scroll through all the tool calls in the program this way.
Now if you are re-starting a program this way, it is very important that you have the correct preset/datum/work offset active. For obvious reasons.
I like to cycle-start from the top of the program, and then cancel out after the datum setting line before the first tool call. Then you can GOTO whatever line you need to restart from.
You can also activate the correct offset from the datum/preset tables but I like using the program for this situation because you know for sure it will match the program you're running.
Hope this helps