A route reflector is used to break the iBGP loop avoidance rule. Route Reflectors are BGP Routers that can advertise updates received from an iBGP peer to another iBGP ( under conditions).So this breaks the rule of full mesh requirement of iBGP peers.
But the question is, how this can be achieved and prevent loops.
iBGP routers are divide in to Route Reflectors(RR), RR Clients and non Client Peers. Routes received from RR client will be distributed to other clients and non-client neighbors. Routes Received from non-client neighbors distributed to RR client neighbors, not to others. Also RR will be set originator-ID and cluster ID in update.
Loop Prevention
Suppose , if a router receives an iBGP route with originator-ID or Cluster ID same as his, then that route is discarded.
Full mesh requirement of BGP can be met for a simple setup, but as network grows it will be difficult . Also it is advised to make redundancy for Route-Reflectors. A failure RR can affect entire routes.
Also RR should be in neighbors with many iBGP Routers to reflect the routes. But still it will help us from building a complete mesh.