Multicast is similar to broadcast where there is one sender and multiple receivers. The difference is that with multicast the receiver can opt-in to a specific multicast group. Routers and switches need multicast support in order to effectively switch multicast content to a station that opted in per IGMP packets. Multicast support on the Internet has always lagged behind somewhat probably due to the fact that the costs of a multicaster are quite low to reach lots of receivers as compared to a broadcaster serving multiple unicast streams. To the backbone multicasting was historically expensive due to increased CPU, however there is a fallover point where it is more cost-effective to route multicasts than unicasts.
Multicast is stateless, meaning you cannot use TCP for multicasting. This sucks because you lose the reliability and content can get lost. There is protocols that use unicast to back up lost multicast packets. Other protocols use parity inside the packets sent so that a lost packet can be reconstructed after receiving other packets. Either way whether you use unicast or parity the method for repairing lost multicast packets is costly.
Peer to Peer networks that operate over unicast are similar to the concept of multicasting. The big difference is that it achieves similar means of distribution in a cascading style and then has many nodes feeding a single node instead of a single node feeding many.