Es wird benötigt, wenn Sie Daten an den Server senden möchten, die Zeichen enthalten, die nicht in reinem ASCII dargestellt werden können, wie 'ñ' oder 'ö'.
Das, wenn die MySQL-Instanz nicht so konfiguriert ist, dass sie standardmäßig UTF-8-Codierung von Client-Verbindungen erwartet (viele sind es, abhängig von Ihrem Standort und Ihrer Plattform).
Lesen Sie http://www.joelonsoftware.com/articles/Unicode.html falls Sie nicht wissen, wie Unicode funktioniert.
Lesen Sie ob "SET NAMES" verwendet werden soll um Alternativen zu SET NAMES zu sehen und worum es genau geht.