TestNg is a framework just like junit but with some better features.It is used to build test cases ,batch test cases and conditionally operate test cases i.e run some test cases and not others.
Tesng can read data from xml files ,run test cases based on that(here web driver comes into play in test cases) and then testng can generate reports ,logs or even take screenshots etc.
TestNg generates xslt reports and most companies use testng instead of junit and also testng.xml helps in parallel execution of various test cases.