У меня аналогичная фигня, помогает, когда сайт в cp1251, а отправляется в utf-8.
Также были замечены проблемы с кодировкой темы письма в некоторых почтовых сервисах, напр. mail.ru, если вот эта часть отсутствует
=?UTF-8?B?
Соответственно, делаете:
$subject = "=?utf-8?B?" . base64_encode("Тема сообщения") . "?=";
и все норм. Видимо, некоторые из них не смотрят на кодировку тела письма.