With AngularJS's $scope.$watch, you are able to monitor scope values for changes. This can be useful for validation of user input, as an example.
Very useful information. Can you please do one on $watching collections?
Also, ngChange and $scope.$watch address overlapping functionality, could you clarify when one is more appropriate over the other?