Seems to be a regular issue with these cars. I recently did this procedure to my car, thanks to Pedro. Make sure you have the idle control valve gasket before you start (it's cheap even from the dealer) as it is fragile and breaks easily.
http://www.pedrosgarage.com/Site_3/Clean_the_Throttle_Body.html
And then while I was there I removed the MAF and sprayed it down with MAF Sensor cleaner from the local auto parts store. It's outlined here (toward the bottom of the write-up), with thanks to Mike Focke:
http://mike.focke.googlepages.com/checkenginelightcausedbymassairflowsensor
It took me about 2 hours of actual work to complete this maintenance and the total cost was around $8.