We review the use of kinetically constrained models (KCMs) for the study of dynamics in glassy systems. The characteristic feature of KCMs is that they have trivial, often non-interacting, equilibrium behaviour but interesting slow dynamics due to restrictions on the allowed transitions between configurations. The basic question which KCMs ask is therefore how much glassy physics can be understood without an underlying "equilibrium glass transition". After a brief review of glassy phenomenology, we describe the main model classes, which include spin-facilitated (Ising) models, constrained lattice gases, models inspired by cellular structures such as soap froths, models obtained via mappings from interacting systems without constraints, and finally related models such as urn, oscillator, tiling and needle models. We then describe the broad range of techniques that have been applied to KCMs, including exact solutions, adiabatic approximations, projection and mode-coupling techniques, diagrammatic approaches and mappings to quantum systems or effective models. Finally, we give a survey of the known results for the dynamics of KCMs both in and out of equilibrium, including topics such as relaxation time divergences and dynamical transitions, nonlinear relaxation, aging and effective temperatures, cooperativity and dynamical heterogeneities, and finally non-equilibrium stationary states generated by external driving. We conclude with a discussion of open questions and possibilities for future work.