VPC peering allows you to give your VPCs the ability to communicate with one another. You could have VPCs in different regions or even different accounts that can talk to each other. It is important to note this is not transitive, if VPC A talks to VPC B and VPC B talks to VPC C that does not mean VPC A can talk to VPC C. You would need to setup VPC peering for VPC A and VPC C separately.
You can even reference security groups in a peered VPC across accounts, same region. The CIDRs on either VPC’s subnets must not overlap between them otherwise the connection will not be successful. Once the two VPCs are connected you will need to update the route tables for each VPC allowing the CIDR from VPC A into VPC B and vice versa. To do this you simply open the route table, specify the CIDR of the VPC you want to peer with this one as the destination and the target will be the VPC peering connection you created, then you go to your other VPC and do the same but with the first VPC’s CIDR as the the destination.
In short, VPC peering is powerful but it is important to keep in mind all VPC peering is one to one connection that needs to be setup for each pair of VPC you want to be able to communicate with each other. Ensure the route tables are updated accordingly when setting up these connections.