A workflow engine tries to take out the definition of a process from inside the code. This process definition will be usually explained in a specific format and language other than the original source code. Examples are XML for JBPM.
This way the users of the system can change the process ( Flow of execution inside the system) without any need to re-compile or changing any code. As a result the system will become a lot more flexible.
Two major applications for workflow engines are internal and external. Internal workflow engines are used inside one program to control the flow of execution of the processes in it and external engines usually control the flow of a process between multiple systems.. a lot of these systems today are Web Services and this is the base for Service Orchestration and part of SOA.
Well these are just some points about workflow engines, I am sure everybody here will help with better information.
These links have good information about this topic:
www.theserverside.com/.../article.tss?l=Workflow
http://www.e-workflow.org/