SIP is a 'signalling' standard for setting up a session across an IP network. SIP was originally standardised by the Internet Engineering Task Force (IETF). It provides a framework of messages that can be exchanged between two endpoints (user, machine or source of content) to establish a session before media flows between them using IP. Higher layer applications at the edge of the network can set paths up across the network using SIP.
IMS takes this a lot further allowing an endpoint to indicate its desire to communicate with another endpoint and for IMS session controllers and SIP applications to set the session up on its behalf. Intelligence in the network allows service providers, for example, to offer presence based routing of calls for their customers.