As Dave has mentioned, you should use a Hold Keyframe when you want to begin a pause or when you want to create an animation between keyframes where values do not interpolate.
I should add that the AE documentation on Hold Keyframes is not how I would explain the use of Hold Keyframes - so I won't send you there.
To create a Hold Keyframe, you right-click on the keyframe where you want to initiate a pause. Then select Toggle Hold, from the context menu that appears with the right-click. You can also use the shortcut key CTRL+ALT+H to toggle a keyframe to/from a Hold Keyframe. You can also hold down CTRL+ALT+click to toggle a keyframe to/from a Hold Keyframe.
To understand how to use Hold Keyframes, it is important to know there are three critical aspects to any keyframe - the keyframe's value and where it occurs in time, its in-coming velocity value and its out-going velocity value.
The trick to using the Hold Keyframe isn't in applying the first Hold Keyframe. Instead, users have an issue with stopping the pause created by the first Hold Keyframe. The user-error occurs commonly because users are not aware that three keyframes are required to set a pause -
1) first keyframe which initiates the pause
2) second keyframe to end the pause and which also defines the beginning of animating the property to its desired value, after the pause
3) and a third keyframe that defines the value of the animating property after its pause, when it began animating again.

The screen grab above shows four keyframes (KFs) for the Position property. The first KF moves the layer from its initial position to its second position. At the second KF, a pause is initiated - note the shape of the Hold Keyframe. A Hold Keyframe has a squarish, blocky edge. This second keyframe has a Linear in-coming velocity, while its out-going velocity is zero - all Hold KFs have zero velocity, ie no interpolation - no animation when Time moves ahead of the Hold KF.
The third KF is where the pause ends and the property begins animating, again. This third KF has to have the exact same value as the second (Hold KF). If the second and third KFs have different values, there will be a visual jump when the Time Indicator reaches the third KF. While this is an issue when creating a pause and continuing with the animation after the pause, such an effect is ideal for creating strobe-like animations - much like what you see in hard-edged, glitch-like animations.
The fourth KF is created to end the animation that began with the third KF.
HTH.