Hi
I am agree with what Bill mentioned in his reply "If you are looking at a stateful web application with controlled navigation with well defined flows then I would consider using Spring web flow.".
I am currently working on the web application where we are using both Spring WebMVC and WebFlow.
At first we will look at Spring WebFlow usability: user has to go through certain steps to purchase our products, it is more or less like shopping cart of any web application to add products, review cart, payment details, terms and conditions and then checkout. So Spring WebFlow can be used for these types of application where there is certain flows/ steps user has to go like installation Wizard of any software.
Spring WebMVC is more requested oriented framework, which works on the FrontController design pattern. Here DispatcherServlet accept the request and figure out which controller to passon the request to, this time it will do handshake with WebFlow to execute a perticular flow.
You will find best tutorial which will explain both in here
http://www.ervacon.com/products/swf/intro/index.html.
It is not mandatory to use Spring WebMVC, you can use Struts or any other framework with Spring WebFlow, but Web MVC is more prefereed as both from Spring and integrates very well.