DataSets internally represent data in XML format and there's practically no overhead involved in generating XML from data contained within it. Depending on which parts of a DataSet object you access the representation of that data can always presented as XML.
DataSets are also very flexible in dealing with incoming XML data. Pass it some data in XML format and .Net will create a DataSet from it. This means that a DataSet can work without any underlying datasource – instead using XML as the data store. You can load an XML document into a DataSet, modify the data and then write it back to disk for persistence. This is perfect for configuration information or other local data that does not rely on complex rules or has to deal with multi-user concurrency issues.
It also means that you can use a DataSet as a mechanism to navigate XML instead of an XML reader or DOM parser. Take note DataSets are about more than just mere data!