I think SpamAssassin (plus curated greylisting) does a decent job most of the time, although I'm starting to see weird issues with spurious DNSWL tests that pass through pretty spammy mail.
In the long run I'm probably going to replace the Bayesian part of SpamAssassin with something custom, simply because operationally it's painful and I think neural nets are closer to state of the art.
I think Gmail really shines at this. It's one of the reason I was thinking of switching to Hey email also, though after reading Hey's reviews I've decided not to. So anyway, would love some comments from users or you about how good you are at separating the wheat from the chaff.