The hardest thing, IMHO, is being able to recognise you're unstable and force yourself to go around.
I think that has been one of the weakest links in the chain, too.
Fairly recently, we changed our SOPs so that the monitoring pilot, who at some point below 1,000R becomes the handling pilot, assesses the stability of the approach so when the 1,000R call occurs and it isn't stable he calls for a go-around. The statistics seem to show a reduction in continued unstable approaches after this change, so it appears to have been a reasonable one.
Of course, once handover of control has happened, it is still possible for the approach to become unstable and/or require discontinuing. That's not an easy monitoring/decision task either...