Heat 1 tablespoon vegetable oil in a pot over medium-high heat. Add the onion and cook until softened, about 5 minutes. Meanwhile, puree the garlic, ginger, jalapeno and 1 to 2 tablespoons water in a mini food processor until a paste forms. Drain the tomatoes, reserving the juice; coarsely crush the tomatoes in a separate bowl.
Add the remaining 2 tablespoons vegetable oil and the eggplant to the pot; cook 2 minutes. Add the garlic-ginger paste and cook, stirring, 2 more minutes. Add the curry powder and tomatoes (but not the juice) and cook, stirring, 1 minute. Add the tomato juice and 1 cup water and cook until slightly reduced, about 3 minutes. Add the coconut milk and tofu; simmer until the eggplant is very tender, about 5 minutes. Add the spinach and cook until wilted, about 1 minute. Season with salt and pepper. Serve with rice, if desired.