aakk9999 - 1:59 am on Oct 17, 2012 (gmt 0)
The best would be to 301 redirect duplicate URLs to "main" page. But in Microsoft IIS this can be more tricky if you do not use IIS 7 or IIS6 with ISAPI Rewrite - in which case you would need to make the change in .NET application.
The next option (and probably the easiest one) would be to implement canonical link element.
To avoid duplication i kept canonical tag in duplicate page referring to main pages but still duplicate pages are ranking in SERP.
How long since you have implemented canonical? Google needs to re-crawl all duplicate pages in order to see canonical link element. Sometimes you may have to wait some months in order for Google to get the correct URL ranking.
Also, have you checked that canonical link element has a correct syntax, i.e. the full URL including protocol and host name? I have seen more than once canonical link element using incorrect <meta name="canonical" ... syntax rather than <link rel="canonical" ... syntax