PLI is more for "design introspection" - i.e. hierarchy walking etc. Where as DPI is to integrate foreign models into SystemVerilog. DPI can't be used to get value of a net for instance, you need to use PLI for it.
Refer to your simulator docs for some examples.
And we cover DPI at length in our SV course(s) in Bangalore.