Typing "user@domain.tld" as "user domain tld" is good too, as it doesn't contain any characters that the harvesters are looking for, while it's still human-readable.
Typing it backwards (dlt.niamod@resu) works fine as well, but takes a bit more effort for the human reader to get right.
The method used on Slashdot is probably fine too. Insert a random word (but not "REMOVE", "ANTISPAM" or similar) in the address, for example "user@domSNAILain.com", and after that write "remove invertebrate animal to e-mail me".
If you've got your own website, then either a CGI form, and/or your address written on a picture is best IMO. I don't think address harvesters bother with OCR detection on images -- for a spammer, that CPU time is probably better spent on harvesting another thousand "unprotected" addresses from people who don't make it clear that they're uninterested in spam and who aren't as likely to report your abuse.
If you make websites for the general computer-illiterate audience, then they NEED a clickable link (or a form). No obfuscation will work, no matter how obvious you make it. People are more clueless than you can imagine. Then the HTML entity encoding mentioned in this thread is probably better than nothing.