The simplest one is whether or not it needs to be synchronous or asynchronous. Plugins are always synchronous, whereas workflows are mostly asynchronous (except in CRM 2013 where synchronous workflows now exist).
The other comparison to make would be if you need non-developers to configure the custom code. A custom workflow activity can be used by non-developers as part of their workflow creation process, and a plugin can't.
The postings on this site are solely my own and do not represent or constitute Hitachi Solutions' positions, views, strategies or opinions.