Terminating a sprint is essentially throwing away unaccepted work in the sprint the sprint and starting a new sprint instead. This is not a decision that should be taken lightly as it costs. It costs time, it costs effort and it costs money. It will also ruffle more than a few feathers. It is however cheaper that continuing with a sprint that is invalid, will provide no business benefit and not be delivered.
An abnormal Sprint termination is most more often than not the result of a dramatic change in business priorities. Something previously considered important is no longer important, or something even more important is discovered.
Sometimes it is the result of the team discovering they are significantly overcommitted. This could be as a result of discovering significant hidden work, bowing to pressure to accept more work that they normally would. (Another problem I will address later) or a host of other reasons.
Formally terminating should really only happen when the Sprint goal becomes invalid. This termination is then a good way to ensure that the presumed benefits of changing a Sprint backlog mid-Sprint are outweighed by the benefit gained in being able to plan and deliver predictably.
How to go about it
Overall though, it is important to be pragmatic, and think things through before lifting the guard and pushing the button. Make sure that there is nothing else that can be done (reducing the scope/splitting stories …).
Terminating a Sprint is a rare event even for new teams and is not something that should happen regularly!