To be fair, there are differing levels of complexity that you pay for. If you buy a "cheap" Roomba, it will perform at the level that you paid for it. As such, don't expect the $149 model to have the longest battery life, to pick up every spec of lint, dirt and debris, and of course don't expect it to always know where the hell it's going or how to get back.
If you don't mind the pricetag, the ~$400 models work superbly. I've never had one get stuck (even when I've moved things around not thinking...), it does a great job with small and large debris, and works well on my berber carpet and wood floors.
The only reason I bought one is because several other members of my family bought similar models -- starting with my father. After his experience, my brother bought one, then my mom, and lastly me. My mom bought the top of the line model with a built-in scheduler so it runs around at different times on different days; she needs it to run more often because she has two dogs.
So, my experience has been quite good. However, I didn't get the bottom-line model, and accordingly, didn't pay a bottom-barrel price. It's definitely one of those "get what you pay for" sorts of things.