Yes it is a good thing. Canonical simply tells everything how the site prefers to be represented contextually. Have you seen the settings in webmaster tools that allows you to set your preferred domain (www. or not)? Imagine the canonical tag as being the same, but only on page levels. So why would we want to add a tag like this?
As allfreechips points out, you do not want people linking to the wrong page contextually in the url. If someone is on a forum somewhere and the are like “oh yeah you got to check out xxx.usaonlinecasino/bonus cause I know you will find the bonus you’re looking for” with no canonical tag, and with other people linking to the site above with no www, both will be indexed and then possibly penalized for dup content.
Thankfully this tag does NOT restrict anything at all. It only tells search engines which is the real page the webmaster prefers to be visible.
Matt Cutts: “Google, Yahoo, and Microsoft announced support for a new link element to clean up duplicate urls on sites. The syntax is pretty simple: An ugly url such as [HTML]http://www.example.com/page.html?sid=asdf314159265[/HTML] can specify in the HEAD part of the document the following:[HTML] [/HTML]That tells search engines that the preferred location of this url (the “canonical” location, in search engine speak) is [HTML]http://example.com/page.html[/HTML] instead of [HTML]http://www.example.com/page.html?sid=asdf314159265[/HTML] .”