For public interfaces (e.g. public methods and classes), document the purpose of each method -- you want to describe your public interface (i.e. your code contract) as clearly as possible.
For private members (where you will actually do the work), you may want to document the purpose of methods. But it is much more useful to document your algorithms -- why and how, not just a description of the code.
Any future developer who has access to your private members will have access to your code as well. If I can read your code, I can figure out what it's doing. But unless I can read your thoughts, there is no way I can figure out why your code does what it's doing -- except if you write some documentation explaining it to me.