I just came back from Mexico City. We stayed in the Condesa/Roma area (at La Casona which is a very nice small hotel, with great service). Most of our meals were in the area. None were expensive. Here are some highlights:
Contramar (two blocks from La Casona) has very good seafood. The whole fish (for 2 people) has been recommended here, and it is definitely worthwhile. It is open only for lunch (1:30-6:30) and it gets quite busy by 2:30.
La Tecla (also close to the hotel) has interesting modern mexican food although it seems to be getting a bit tired.
Rojo Bistrot has nice bistro-type food, but the highlight is to get an outdoor table facing Amsterdam, which is a lovely street covered by a canopy of trees, with birds singing and little traffic, that goes around Parque Mexico.
At La Buena Tierra (Atlixco & Michoacan) we also sat outdoors in the Condesa area with the highest density of restaurants. The fish and vegetarian dishes were simple yet interesting.
We had a nice Sunday breakfast at Matisse (also on Amsterdam) with eggs Oaxaca style and fresh tangerine juice.
We tried to go to Mosaico (on Michoacan near Insurgentes), but it was always packed.
We went to Polanco to compare Los Arcos with Contramar. The Pescado Zarandeado (also for 2 people) and the grilled octopus were very good. Although not as good as Contramar it is open for dinner.