I used to think the Leahy/Langridge method was the best, however as I have used it more and more I have found the Phark method to be both easier to implement, just as effective and more useful, as you can have links within the headers as well (something I never got working before).
Both of those require no extra markup and I don't think (if Google's Matt Cutts is to be believed) there is much, if any, bad effects on SEO (ie Google won't penalise you for hiding text as long as it doesn't appear spammy).
Both don't work, or take extra work to make work, in IE5, but I don't know of anyone who supports that anymore.
So I would recommend the Phark (or Phark Revisited, which works best) method.