Nathan Lee has a good post on the use of BPM tools. Adding my own two cents. The potential for BPM is good for long running complex processes. But from an overhead and complexity perspective is it really providing the touted benefits?
The ability to stop, pause, branch and restart individual steps is pretty powerful in a complex long running process. This makes complex processes more supportable. However, despite the modeler's ease of use (webMethods version), these processes can be difficult to develop and deploy. They also add a large load to the infrastructure.
Some criteria to use: long running and lots of steps. High volume, low latency would not be the best fit for BPM. Unless of course you own stock in Sun or Intel. Other things to think about, does my process frequently stall while waiting on some action? Does it have multiple points where it can stall or wait for long periods? Do I need or want visibility into this while it is happening? Does the process take different paths based upon some filter(s)?
And last but not least, do I have a big honking server(s) to run it on?