I would second the Support comment, its Fantastic!!!. Mark is constantly developing the product range and has a very in depth knowledge of what makes uTasker Tick.
One of the very powerful featues of uTasker which it takes a while to get your head around is that its simulation environment based around compiling your code in Visual C is a very good way of working. I'm mostly now developing my application on the PC in visual C, using all the power of visual Studio to debug and develop the application. Once I have delevoped a section or module I will then compile to the Target (I use Rowley Crossworks for Arm) invariably the code works first time.
I use uTasker on the Luminary LM3Sxxxx chips, I also use the Modbus extension module which is very very comprehensive and powerful.
The biggest difficulty I found was that the sample application does everything!! and its all controlled by #ifdef statements. This makes it difficult with a cursary glance to see whats going on. For a beginner trying to peal back the layers to show a simple UDP or TCP application this can be confusing. What this means is that you have to dedicate a few hours to understanding whats going on. (But the effort is worthwhile). I understand that the new version V1.4 may well have split up the examples into smaller "bite" sized chunks, but I've not had the chance to look at it in detail.
Another area where uTasker improves over the likes of UIP and LWIP is in documentation, this again is very comprehensive and is every growing.
Feel free to ask further questions, as I believe uTasker deserves all the exposure it can get and I'm sure other developers like Aaron and myself would be happy to "Blow uTaskers trumpet".
Cheers
Martin