Kolkata is much better than chennai, in Chennai people see tourist and try to take advantage from them through taking high amount of money due to language barrier. it happened with me there that from Egmore to marine beach it costed me rs. 70 but while returning from the beach it was around 200. and no one was settling down because we couldn't understand tamil.
I would opt for Kolkata because I am from there. Apart from that there is language barrier which makes local travel pretty difficult. Although I have been to quite a few places in Chennai but as a city would prefer Kolkata any day!