R-trees are a type of data structure used for indexing multi-dimensional information, such as geographical coordinates, rectangles, and polygons, making them highly efficient for spatial queries. They work by grouping nearby objects and representing them with their minimum bounding rectangle, allowing for fast searching, inserting, and deleting operations in spatial databases.