When to use assertions:

To prove a state, or to prove a state doesn't exist.
To check preconditions/postconditions in internal code (eg private methods of a library)
To provide feedback to...