As your projects get larger and more complex, you end up spending a lot of time writing and debugging state machines, and trying to break up lengthy tasks in an efficient way.
An RTOS allows you to spend more time developing the actual functionality of your application without all the messy state machine code. You also gain a large library of useful functions such as queues, semaphores, mutexes, timers etc.
If you have never used an RTOS, the benefits seem dubious compared to the memory and cpu overhead, and it can seem a daunting task to start with. Stupid flashing LED RTOS example code just makes RTOSs look ridiculously over-complicated and pointless, you need a reasonably complex project for them to show their benefits. However, once you've grasped the concept and learn how to use them effectively they make a lot of sense.
As always, use the right tool for the job. Non-blocking state machines are often much more appropriate for simple applications, especially on 8 bit micros like the PIC18.