Ele é necessário sempre que você deseja enviar dados para o servidor com caracteres que não podem ser representados em ASCII puro, como 'ñ' ou 'ö'.
Isso se a instância do MySQL não estiver configurada para esperar a codificação UTF-8 por padrão das conexões do cliente (muitas são, dependendo da sua localização e plataforma).
Leia http://www.joelonsoftware.com/articles/Unicode.html caso você não saiba como o Unicode funciona.
Leia Se usar "SET NAMES" para ver as alternativas SET NAMES e do que se trata exatamente.