Sonar is a vast open source tool, so not possible to summarize everything. It is a platform to manage code quality and analyse static code.
(1) Provides a dashboard for health of several java projects.
(2) Provides ability to drill down at source code level to find out quality violations on code.
(3) Provides automated code review with more than 600 coding rules.
(4) Has ability to run JUNit test cases and provide code coverage metrics.
(5) Provides several metrics for quality like Lines of Code, Cyclomatic complexity, Duplicated code, etc.
(6) Provides historic metrics on quality and gives past timeline on how quality metrics evolved.
(7) Provides out of shelf integration with Maven based Java projects.
(8) Provides out of the shelf integration with Checkstyle, PMD, Findbugs, Clover, Cobertura.
(9) One interesting feature is about applying architectural design patterns. There is a concept of separation of concerns architectural design pattern, which means that there is a clear separation of software layers in the application and violations are reported in the quality metrics.
(10)Sonar is about quality metrics and so it is important that quality parameters are understood well by Project Manager. Here’s the link to Sonar Quality Metrics listing - http://docs.codehaus.org/display/SONAR/Metric+definitions
(11)A continuous integration tool like Cruise Control has to be used to build project and register with Sonar for quality analysis. This should have frequency of daily nightly build. This will show correct metrics in Sonar.
(12)Another interesting view is – Resource Viewer. This shows each quality aspect of the Sonar for the Java Project under consideration. http://docs.codehaus.org/display/SONAR/The+resource+viewer
There is a blog on how to setup Sonar at - http://choudhury.com/blog/2011/06/12/using-sonar-in-your-java-maven-project/