Graphene is one of the most promising materials in nanotechnology. The electronic and mechanical properties of graphene samples with high perfection of the atomic lattice are outstanding, but structural defects, which may appear during growth or processing, deteriorate the performance of graphene-based devices. However, deviations from perfection can be useful in some applications, as they make it possible to tailor the local properties of graphene and to achieve new functionalities. In this article, the present knowledge about point and line defects in graphene are reviewed. Particular emphasis is put on the unique ability of graphene to reconstruct its lattice around intrinsic defects, leading to interesting effects and potential applications. Extrinsic defects such as foreign atoms which are of equally high importance for designing graphene-based devices with dedicated properties are also discussed.