1. Pour olive oil into a 12-inch frying pan with 2-inch-tall sides or a 5- to 6-quart pan over medium-high heat. When hot, add onions and stir frequently until limp, about 5 minutes. Add tomatoes; stir occasionally until tomatoes are soft and have released their juices, about 10 minutes. Stir in fish sauce, turmeric, ginger, and salt.
2. Meanwhile, rinse eggplant and cut into 1-inch chunks, discarding ends. Stir into tomato mixture along with tofu. Cover and cook until eggplant is tender when pierced, about 20 minutes longer. Sprinkle with cilantro and serve immediately (see notes).