As I have seen there a lot of requests regarding monitoring and reporting for exchange 2007 / 2010 / 2013 I have decided to post some thoughts together and link to articles that have helped me.
Of course a lot of information you can get from the EMC but for me powershell is the way to go.
This said the first thing that I would encourage you to look at is the "Exchange Server 2010 Monitoring Management Pack" here -> http://www.microsoft.com/en-us/download/details.aspx?id=692
The link above has a reasonable detailed description as to what the pack is used for. From that description a few of the more interesting points are (and not restricted to) : detect, send alerts, and automatically correlate critical events, this management pack helps indicate, correct, and prevent possible service outages or configuration problems, allowing you to proactively manage Exchange servers and identify issues before they become critical.
Below there are some blogs that contain different scripts to accomplish the task you wish and of course you can add features and modify them.
How to Health Check an Exchange 2010 Mailbox Server -> http://exchangeserverpro.com/health-check-exchange-2010-mailbox-server/
Generate Exchange Environment Reports using Powershell -> http://www.stevieg.org/2011/06/exchange-environment-report/
Process Tracking Log (PTL) tool for use with Exchange 2007 and Exchange 2010 ->
For the one's that wish to write their own scripts I have found this article that was most helpful -> http://www.msexchange.org/articles-tutorials/exchange-server-2010/monitoring-operations/monitoring-exchange-2007-2010-powershell-part1.html
- there are 4 parts to the article.
It is a step by step guide for designing and taking into consideration all the parts you need to make it happen.
Of course to be able to customize your scripts you will need to learn powershell and I have found this link most interesting for this -> http://technet.microsoft.com/en-us/library/ee221100.aspx
To be completely honest with you it will take some time to master powershell. It is not hugely difficult, just very expansive and well worth the effort. Once you begin to understand powershell, the possibilities are considerable, and there is no limit to what you can monitor or report (and not just Exchange).
Maybe that will become an interesting Article in itself :)
Vote "Yes" for this article.