ngRoute is a angular core module which is good for basic scenarios. I believe that they will add more powerful features in upcoming releases.
Ui-router is a contributed module which is overcome the problems of ngRoute. Mainly Nested/Complex views.
Some of the difference between ui-router and ngRoute
http://www.amasik.com/angularjs-ngroute-vs-ui-router/
Angularjs routeprovider vs stateprovider
http://angularjs4u.com/routes/angularjs-routeprovider-stateprovider/
ps : stateProvider is used by ui-router which provides a different implementation of routeprovider
Ui-router is a contributed module which is overcome the problems of ngRoute. Mainly Nested/Complex views.
Some of the difference between ui-router and ngRoute
http://www.amasik.com/angularjs-ngroute-vs-ui-router/
Angularjs routeprovider vs stateprovider
http://angularjs4u.com/routes/angularjs-routeprovider-stateprovider/
ps : stateProvider is used by ui-router which provides a different implementation of routeprovider