Tuve el mismo problema que vos y lo solucioné de la misma manera:
Código PHP:
$mail->Body = utf8_decode($cuerpo);
PEEEERO me trajo oooootro problema, al abrirlo en clientes como thunderbird y outlook, aparece un rombito en vez de los caracteres especiales y en el nuevo formato de hotmail(outlook.com) pasa lo mismo.
Sin tener que decodificar, con los únicos que tengo problema es con Yahoo y Gmail.
Saludos!