SQL Reporting Services. They have a web tool to build ad-hoc reports that is as good as any other.
The general problem with ad hoc reporting is that the "thing" the user is trying to do is either beyond the tool or beyond the user and you have to do it any ways, and as a programmer SSRS is a better environment.