In SFDC:Why not use campaigns in Salesforce.com to do this? yes, you won't be able to correct old converted leads, but at least you'll have it from now on...
You can then put rollup summary fields on the campaign that count how many of each flavor of rating you have, and then even formula fields for % of total. Those fields in turn can be put in reports and dashboards to show campaign profiles by rating mix.
With the latest release, you can even put a pie chart directly on the campaign page showing % of each rating impacted by the campaign.
In Marketo:Try using the report type "Leads by Campaign" and then add Custom Columns" where each column is a smartlist based on your rating, eg "Leads Rated A", "Leads Rated B", etc. You'll then have a list of programs as rows, and # of leads by rating as columns.
Here's a quick and dirty mockup:
Otherwise you're looking at another data warehouse system to support - GoodData and other BI solutions.