What is a Hook and what is it for?

This is a question that we get asked fairly often:

The difference between a hook and a normal function is not clear to me, does the hooks execute on a different thread or something like that? What is the benefit?