UML 2.0 is a collection of standards and guidelines for creating Unified Modeling Language diagrams to describe and design software systems. It includes several diagram types like class, sequence, activity, and state machine diagrams. Class diagrams describe object relationships, while sequence diagrams show object interactions over time. Activity diagrams display business processes and workflows. General best practices for UML diagrams include avoiding crossed lines, keeping labels horizontal, and organising diagrams systematically.