There is no perfect method, but hiding the text behind the image is the most accessible version so far. Some people browse with images turned off (to save bandwidth, say on mobiles) and it's annoying to have lots of text missing. (I turn off images on the mobile while travelling, so I see this a lot.)
Yes as Ralph said it is the most accessible method around.
Negative text-indent moves the text off screen so if you have a broken or missing image (or the user has turned images off) then the user gets nothing at all. Also if the element is a link (as in navigation elements) you can end up with the focus outline stretching off the side of the page into infinity and looking very strange (turning off the outline is not a good idea either as you will thwart keyboard users.)
The text behind the image method works in any combination of css on/off or images on/off and the user will still get content (and so will search engines and screen readers) (apart from a bug in opera mobile that Ralph pointed out a while ago). The main drawback of the text behind the image is that you can't easily use transparent images because the text would be visible.
There is also a minor point that as you are hiding nothing off screen then it can't be seen as an attempt to fool search engines although it has been stated that you should not be penalised for using properties in the normal way anyway.