Det behövs när du vill skicka data till servern med tecken som inte kan representeras i ren ASCII, som 'ñ' eller 'ö'.
Detta om MySQL-instansen inte är konfigurerad att förvänta sig UTF-8-kodning som standard från klientanslutningar (många är det, beroende på din plats och plattform.)
Läs http://www.joelonsoftware.com/articles/Unicode.html om du inte är medveten om hur Unicode fungerar.
Läs Om du ska använda "SET NAMES" för att se SET NAMES alternativ och vad det handlar om.