CRTP use case

What is the primary purpose of the Curiously Recurring Template Pattern (CRTP)?

template<typename Derived>
struct Base {
    void interface() {
        static_cast<Derived*>(this)->implementation();
    }
};