A boundary clock in PTP is both a slave and a master clock. It will take the sync message in, adjust for delay, and then create a new master time signal to pass down the network to more devices.
This allows you to have a clock that creates a new timing packet which is still correctly synced with the master and can reduce the number of devices the master is directly sending time to. The packets are also able to resist some of the effects of degradation because they are reproduced from scratch. A transparent clock does not reproduce the signal in this way, but instead only adds delay information to the existing signal.
Note that a Boundary Clock can translate between signal types, and is also able to operate on more than one subnet. A transparent clock has neither of these abilities.
Used when: There are too many devices on a network for one master, long distances are involved, or signals need to be translated between protocols (such as PTP to IRIG-B).