The angular.js and angular.min.js are both essentialy the same code - with the same functionality.
You can see angular.min.js as an 'abbreviated' form of angular.js - with all the spaces, newlines, comments removed, variable names shortened, etc. This is done so that the file size can be minimised to reduce page load time and bandwidth requirement.
However, all these things make the angular.min.js code difficult to read (you do sometimes need to read the angular source code while debugging to understand where the errors reported in the console come from). Hence, you would use angular.js in development and angular.min.js in production.
Sometimes you would want to debug your code in production (where you should use the min file). In those cases you would use a source map file for debugging (angular.min.js.map). The map file 'maps' code from angular.min.js to the corresponding code in angular.js making errors easy to understand. The browser console looks for a map file and does this automatically for you when reporting errors.
Also see: What's the difference between jquery.js and jquery.min.js?
http://www.html5rocks.com/en/tutorials/developertools/sourcemaps/