I have stayed at the Taj Mahal a few times on business in Tehran, and found it to be a reasonable option, given the distinct lack of first class hotels in Tehran.
The rooms are spacious, each is a small apartment, self catering would be possible although I have not done this. Rooms are clean and there is a TV, stereo and some (English) books in the room + fridge and complimentary fruit on arrival.
The beds are a little too soft for my preference.
Service is good, staff are generally helpful and polite, you get a complimentary cup of tea on arrival and check-in/out are usually smooth.
Indian restaurant is quite nice (but I like Indian food anyway!). If you did not like Indian food, then don't stay at this hotel! The breakfast is not very good - poor quality and not a good selection on the buffet.
There is a small gym and very small swimming pool - timings are split with different times allocated for male / female use due to local religious restrictions.
All in all a reasonable choice and not too expensive by Iranian standards.


Value
Cleanliness



