In a nutshell..
If your scope is limited to fine detailed unit tests with no dependencies in between them then JUnit can be used.
If your scope requires functional testing that may/may not require dependencies and sharing of data (parameters) between tests then pick TestNG. Also, TestNG can do unit testing similar to JUnit. SO you can have a suite of unit tests and a suite of functional tests.