I've had both good and bad experiences with SOAP. I remember wasting a few days figuring out how to get a PHP app to authenticate against an ASP.NET SOAP implementation... I did get the auth to work, but then I ran into other problems, and we found these bozos had a competitor that had a simple POX api that took five minutes to get working.
On the other hand, there was the day I pointed Visual Studio at the WSDL file for the Salesforce.com API and was quite astonished to see it build all the stubs for a very complex API with just the click of a mouse and no hitches at all.