I'd say do both. The 301 is the most important, because it allows full technical responsibility on your server. With the canonical link tag, its effectiveness is up to the search engines and whenever possible, it pays to take as much responsibility for yourself as you can - but the canonical tag is a good backup or "safety factor."
My opinion is to make sure your pages do not display the www.mysite.com/index.cfm but only www.mysite.com whenever you need to link to your home page internally. You don't need a redirect in this case.
And it won't do any good to redirect if your pages that return 200, expose links that lead to 301s.
@enigma1 - over the years, I have linked to my site to the /index.cfm page (this was before I understood the dupe content issue, problem) - so I am trying to fix those.
@tedster - to further my question - google would not look at a 301 as a slimy redirect in any way as long as that is indeed the homepage, and although I do link to that page from other places (internally and externally)? I just don't want G to think I am doing anything tricky - just trying to remove a dupe content issue.
Thanks for both of your replies. I really appreciate it!