"While the Via header field tells other elements where to send the response, the Contact header field tells other elements where to send future requests."
As SIP is somewhat of a standard (some points are not clear enough in practice) you can consult the RFC for questions like these.
A typical case would be a load balancing proxy. Once the call reaches a particular worker, the contact header will directly identify that worker, so that the proxy is cut out of further interactions.