XMLRPC and SOAP both allow you to perform remote procedure calls as XML messages sent as part of a regular HTTP POST. So as far as HTTP is concerned XMLRPC and SOAP are just HTTP POST requests which happen to have XML data in them rather than the results of a HTML form.
As you might expect from the history of the two standards, XMLRPC is a great deal simpler than SOAP. Unlike XMLRPC SOAP allows you to use other transport mechanisms than HTTP (SMTP, FTP, Jabber). SOAP also is not tied directly to the client/server model, so messages can be passed in other configurations such as a peer-to-peer network. To achieve these ends SOAP uses more advanced features of XML than XMLRPC (namespaces, schemas).
The important thing to remember is that SOAP can be just as simple as XMLRPC, but it can also be more complicated if you need it to be. Kind of like the Perl motto "to make easy things easy, and hard things possible".