A DataReader is optimized for reading so it will be faster than a DataAdapter, especially for filling tables, combos, etc.
Of course, if you have multipe tables to load, a DataAdapter has the advantage of loading all tables at once, which means less calls to the database (one call can retreive 3 or more tables in one shot).
I have yet to use a DataReader in production, but only because areas where I need to read data, I need to read a relatively large chunk (and always multiple tables). Weve noticed no performance issues doing things this way. We DO utilize webservices to retreive data, and we do so asynchronously so parts of the form can initialize while waiting for the data to stream down from the webmethods.
-Nerseus