Crystal reports on asp.net is probably your best bet for "nice" looking reports in a web browser. I helped my wife out on a project that required a bunch of crystal reports to be displayed in a browser, and we ran into all sorts of limitations.
For one, you're only allowed 5 active connections - which means that only 5 report queries from different users are allowed to be run at the same time. This isn't so bad for a user-base of, say, up to 30 users cause the chances of all of them clicking query links in the report are quite slim.
The other thing was setting up the report so that it would be able to connect to the db. What a pain in the a$$. Crystal reports is so anal when it comes to setting up db connections. If you have embedded reports (or subreports as they're called) then good luck. PM me and I'll give you the sledgehammer method I wrote that actually sets the connections for all reports and subreports.
There are two ways of feeding data into your report. The first is to use the report designer - using their wizards you can build up the (nasty) queries that will fetch all your data for you. This is known as the "pull" method. The second is the "push" method, in which you write a nice, clean query and feed it into the report as a DataTable. Just remember to set up an xsd as a data source in your report, so that Crystal knows what fields are coming it's way.
The push method is by far the cleanest, and wont bring your database to its knees as it tries to evaluate the nasty queries generated in the "pull" method.
But, in all, it is the best of a bunch of bad options, and brings you clean interactive reports with nice things like sub reports, and easy user-driven drill-downs. It renders the report into HTML, which is cool because your users wont need any crystal plugins to see their reports.
Good luck!