In this article we survey r-adaptive (or moving grid) methods for solving time-dependent partial differential equations (PDEs). Although these methods have received much less attention than their h- and p-adaptive counterparts, particularly within the finite element community, we review the substantial progress that has been made in developing more robust and reliable algorithms and in understanding the basic principles behind these methods, and we give some numerical examples illustrative of the wide classes of problems for which these methods are suitable alternatives to the traditional ones. More specifically, we first examine the basic geometric properties of moving meshes in both one and higher spatial dimensions, and discuss the discretization process for PDEs on such moving meshes (both structured and unstructured). In particular, we consider the issues of mesh regularity, equidistribution, alignment, and associated variational methods. An overview is given of the general interpolation error analysis for a function or a truncation error on such an adaptive mesh. Guided by these principles, we show how to design effective moving mesh strategies. We then examine in more detail how these strategies can be implemented in practice. The first class of methods which we consider are based upon controlling mesh density and hence are called position-based methods. These make use of a so-called moving mesh PDE (MMPDE) approach and variational methods, as well as optimal transport methods. This is followed by an analysis of methods which have a more Lagrange-like interpretation, and due to this focus are called velocity-based methods. These include the moving finite element method (MFE), the geometric conservation law (GCL) methods, and the deformation map method. Finally, we present a number of specific types of examples for which the use of a moving mesh method is particularly effective in applications. These include scale-invariant problems, blow-up problems, problems with moving fronts and problems in meteorology. We conclude that, whilst r-adaptive methods are still in their relatively early stages of development, with many outstanding questions remaining, they have enormous potential and indeed can produce an optimal form of adaptivity for many problems.