I love sequence diagrams. They are essential for designing complex event-driven system where there are a lot of asynchronous operations. I often use them to make sense of and/or prevent race conditions.
I can also see the value in UML class diagrams for complex OOP systems but for me personally, I can make do without them in the vast majority of cases. They are not as valuable to me as sequence diagrams.