The problem with investing great amounts of time in UML, before you need to discuss a particular topic, is that there are many different views of the same system. Unless you're talking to another coder, a class diagram will not aid in discussing business logic. There are typically quite a few representations of the same system and based upon your discussion only one of those is of any use. Composing these diagrams can be highly time consuming for small projects at the risk of not completing the small project at all. For larger projects its probably impossible to diagram every aspect unless you employ the use of design recovery companies.
While excessive time to compose a correct and complete model of design does not constitute a failure of UML (dont ask me to develop and formalise such a large diagram), I do think that UML is necessary. If you cannot communicate correctly, on at least a small scale, then you're at a disadvantage. There are many diagramming methodologies of which a professional should understand and use at least one modelling system correctly. That is: the ability to use the correct diagram to quickly sketch the interactions being discussed instead of using the incorrect diagram and forcing information into the diagram.
A UML Tutorial [Link]