I got an email about this recently.
So here is my answer:
if you are developing in a homogeneous corporate environment
If you are using Visual Studio 2008 and Office 2007 then VSTO is very compelling for a lot of reasons. Even more so if VS2010 and/or Office 2010 are looming in your near future.
If you are using older versions of either VS or Office or are supporting multiple client configurations then I would say not to develop VSTO at this stage.
I havent done much with VS2005 VSTO (not many people have!), but my sense from work with prior versions and reading around is that there is little payback for the pain or using C# (or VB.net I guess – good luck finding documentation!), and the deployment hassles.
I’m also not sure how good the migration story is from 2003/2005 to later versions.
My advice would be to concentrate on a loosely coupled design so that parts can be migrated to more suitable technology piecemeal as and when a viable cost/benefit exists.
I’m actually working in VSTO 2008 (and O2007) at the moment and its quite a pleasant surprise.
I’ll blog more on that as I get time.