Hello Carl,
MPLS provide great benefits to providers:
a) it allows to provide services that without MPLS would need additional features on core devices:
example ipv6 over mpls using 6PE or 6VPE.
b) it allows to transport non IP traffic inside mpls frames (EoMPLS, VPLS, FRoMPLS, and so on).
again core devices don't care of what is inside mpls frames.
c)provide a way to overcome the hop by hop paradigm of ip routing (MPLS Traffic engineering).
d) provides basis for MPLS L3 VPN and L2 VPN
all this can be done with stacks of MPLS labels (multiple labels associated to the frame, the external one is used to perform mpls switching, the internal ones specify the service)
Hope to help
Giuseppe