What is the purpose of DI?
The purpose of Dependency Injection is to reduce coupling in your application to make it more flexible and easier to test.
How does it benefit?
Objects don't have hard coded dependencies. If you need to change the implementation of a dependency, all you have to do is Inject a different type of Object.
How does it implemented?
There are various methods of Dependency Injection. Check out the Wikipedia article to see examples of each. Once you understand those, you can start investigating the various Dependency Injection frameworks.