If you are using SQL Server, and already have VS.NET, then SQL Server Reporting Services is option to explore. I've found it very capable. There is an introduction on MSDN. If you are interested in using the web service API to interact programatically with the report server, then take a look at a Tree Navigation sample, and a CreateSubscription API sample.