One of the issues with duplicate content is that links can be split across several versions of your page, it was my understanding the a 301 redirect is really the only option for retaining some of the link juice, however, looking at some answers here and on other forums it looks like some people believe the canonical tag will have the same effect as a 301 (in the search engines eyes).
Does the canonical tag tell the search engines that the links pointing to duplicate pages should count for the original or does it simply tell them which version of the page you want indexed?