Postfix’s reject_invalid_helo_hostname, reject_non_fqdn_helo_hostname, and reject_unknown_helo_hostname really work wonders for me – but then it is only a small server with 1.5 users and a total of about 300 delivery attempts a day (85% rejected, 5% later classified as spam, 10% actual email).