Basically, it calls the empty! method on @cart object. Without knowing what class @cart is, it's impossible to say anything about what it actually does. However, judging by the name, I would guess it empties the cart. The exclamation mark is a naming convention that indicates that the object itself is being modified (as opposed to returning a modified copy of the object).
And does this:
redirect_to(:action => 'index')
mean simply that the action index should be called?
Pretty much, but not exactly. It adds a redirect header to the response, indicating that the connected client should initiate a new request, this time for the url identified by :action => 'index'.