IHO, the best use for XML is to pass data from one system to another. Say I am working for IBM and I want to share data with a Sun programmer. I will create an XML document and pass it to him. If it's complex, then we will somehow define a mapping of the tags and so on. This way he can take my XML data and put it into his system, even though I program in DotNet and he does in Java.
Now lets say that 5 years have gone by and I am the CEO of MS and he is a congressman and there has been a system failure of some kind. Well, since the data is in text (XML 1.0), then it is easy to open up the document and read the data and search for bad data and to also get an idea as to what to look for when debugging. Try doing that with some kind of Binary data. You can read messages from the DOTNET archive, unsubscribe from DOTNET, or subscribe to other DevelopMentor lists at http://discuss.develop.com.