How can I make it easier for users to generate the reports they need?
We have had great success using Jasper Reporting with CiviCRM.  

It does require knowledge of the underlying CiviCRM database, and writing SQL against it, but the formatting capabilities are powerful and fairly easy to use.

Once a report is created, it can easily be added to the CiviCRM menu.

More details here: https://civicrm.org/blogs/lcarter/civicrm-and-jasper-reports