O'Reilly publishes a selection of books as their "Learning" series. These books tend to be geared to the programmer or student unfamiliar with a technology who is looking for a good introduction. "Learning UML" is a worthy addition to this series. This book is not a complete introduction to the topic of UML diagrams but for the programmer or student wanting to get a good understanding of the basics of UML this book will serve very nicely.
The book starts with an explanation of why we model code and then gives a brief introduction to UML. The author then discusses the most commonly used UML diagrams. Class and object, use case, component and deployment, sequence and collaboration, state, and activity diagrams are each given a chapter. How and why each diagram is used is explained with sample diagrams designed to show the most common usage. There are exercises at the end of the main chapters with solutions for the exercises in the back of the book. The exercises are designed to help you to check whether you have understood the information in each chapter.
If you are looking to become an expert in UML then there are other books that will serve that purpose. At a little over 200 pages, this book gives enough information for most students and developers without overwhelming them with the multitude of diagrams that are available in the UML.