The verdict?
In a post-Panda world, where eliminating duplicate content occurrences is of great importance, proper knowledge of 301 redirects and canonical tag utilisation is a must.
As you can see, both methods serve the same purpose but are completely different in their nature and application. While it may not really sound that complicated (and it is quite simple indeed, as long as you follow the basic logic), a word of caution is needed here. If not used properly, 301 redirects and canonical tags CAN and WILL cause much more harm than good.
In cases like 301-redirecting all website pages to the home page, 301-redirecting an existing 301 redirect, or sporadically spreading canonical tags across all pages and so on, is likely to leave your website sidelined for quite a while. And no one wants that, right?
Choosing how to use 301 redirects and/or canonical tags will be determined by the particular occasion, as one may not work well in some cases and vice versa. If you are not completely sure about your website, we are always happy to help.