If you ask about the protocol itself, as a theoretical construct, then it is safe. In theory it indeed provides all the feature that it promises.
And now for the "but..." part. When you use a protocol to communicate, you are actually using one implementation of the protocol. The implementation tries to do exactly what the protocol says. However you can never be sure that there are no bugs in the source code.
What i am trying to say is that OTR is definitely not all show. Theoretically it provides everything that it promises, and practically the libotr library (which i think adium uses) is a good implementation of the protocol with active development and security audits (i believe). So it definitely is better than no encryption at all and if you suspect snooping you should definitely use it.
Lastly if you want even more security dont rely only on otr.You must learn how to use crypto properly, use other protocols for anonymisation, obfuscate you traffic etc.