We're pretty happy with the free StringTemplate.Net library for generating HTML reports (or any other text-based format). The templating language is simple enough that anyone who understands HTML should be able to adapt the templates. The HTML reports can be shown directly in the application with the WebBrowser control, and we use a commercial library to convert the HTML to PDF if desired.
A StringTemplate example from the 5 minute introduction:
<html>
<head>
<title>$title$</title>
</head>
<body>
<p>Hello again, $name$ !</p>
<p>Greetings to your friends $friends; separator=", "$</p>
</body>
</html>
We have also used Microsoft ReportViewer before. This does have the advantage of coming with a viewer control for both WinForms and WebForms, export to pdf and excel, a search feature, SQL Server integration and advanced printing options. But AFAIK it requires Visual Studio to create/customize reports with the
Report Designer; it does not really support report customization by end users. It seems to be more oriented towards the drag-and-drop programmer working in an environment with a full microsoft stack (IIS, ASP.NET, SQL Server).