A quiver is a finite directed graph. A quiver representation assigns a finite-dimensional vector space to each vertex, and a linear map between the corresponding spaces to each arrow. A fundamental role in the theory of quiver representations is played by Bernstein-Gelfand-Ponomarev reflection functors associated to every source or sink of a quiver. In joint work with H. Derksen and J. Weyman (based on an earlier joint work with R. Marsh and M. Reineke) we extend these functors to arbitrary vertices. This construction is based on a framework of quivers with potentials; their representations are quiver representations satisfying relations of a special kind between the linear maps attached to arrows. The motivations for this work come from several sources: superpotentials in physics, Calabi-Yau algebras, and cluster algebras. However, no special knowledge will be assumed in any of these subjects, and the exposition aims to be accessible to graduate students.