Resharper offers a swathe of features that I cannot easily live without when coding in Visual Studio - the product makes my life so much easier in so many ways they are impossible to list in the space of a simple review.
These features include automatic trapping of coding errors as you type, automatic code completion, automatic creation of references whilst typing, advanced unit test control and management, code style and improvement suggestions, and much more.
As an example LINQ syntax can be quite difficult to master, and even if you are good with it sometimes it just doesn't seem to work properly. Yet Resharper can automatically convert older style constructs like for and foreach loops into 100% accurate LINQ queries. Even better, if you decide that for a particular case the original loop is clearer or better, Resharper will restore it with as little as a single keypress.
We have implemented a policy that nothing goes out of the door that does not have a 100% green lights in the code pages and the unit tests, and Resharper makes that policy easy to enforce and simple to achieve.
Some edge cases may have odd or unanticipated behaviour, but if reported and found to be correct (most often Resharper is right and the user is wrong) the developers are very good at fixing any issues. If you detect a new check or rule they are also happy to add them to capabilities of the product.
The support team is responsive and helpful, and although it may take time for features to make it into the final product they listen carefully to developers and work to ensure that they get the best possible bang for their buck.
Resharper can be a little memory hungry if you have several copies of Visual Studio running. Recent versions are observably slower than older versions, but in return offer more functionality which is an exchange I am willing to make.
Don't think about it, do it. It is the single best productivity tool I have used since I started programming in 1984, and whilst it is not cheap it is stunning value for money.
Resharper makes coding quicker and easier, makes the resulting code better quality, and provides clear indication where errors might exist that might otherwise only be found during debugging. Applications are more robust and maintainable as a result.