Curries are a great make-ahead meal; they often taste better the second day, when flavors have had a chance to develop and meld. Like stir-fry dishes, curries require some advance preparation, but they come together quickly at the end.
Serve this dish with jasmine rice, naan bread or pappadums, and an assortment of condiments such as plain yogurt, diced tomatoes, mango chutney, raisins and shredded coconut to mellow its heat. The coconut milk is optional but delicious.
Heat 3 tablespoons of the oil in a large saucepan or Dutch oven over medium heat; when hot, add the onions. Cook, stirring frequently, until the onions soften and turn golden, 5 to 10 minutes. Add the garlic, jalapeño and ginger, and reduce the heat to low. Cook, stirring frequently, until the mixture is soft and fragrant, about 5 minutes.
Meanwhile, heat the remaining 2 tablespoons of oil in a large nonstick skillet over medium-high heat. Add the eggplant and cook, stirring frequently, until the eggplant is browned and crisp-tender, 7 to 10 minutes. Set aside.
Add the salt, spices and curry leaves to the onion-ginger mixture and cook, stirring constantly, for 3 minutes. Add the bay leaves, tomato paste, diced tomatoes, coconut milk and enough water to almost cover the ingredients in the pan. If you're not using coconut milk, substitute an equivalent amount of water, plus more as required. Raise the heat to medium and bring the mixture to the start of a simmer. Cook slowly, adjusting the heat to maintain a low simmer, until the mixture thickens slightly and the tomatoes begin to soften, about 10 minutes.
Add the zucchini to the curry and cook for 2 minutes. Add the chicken and simmer until it's cooked through, 5 to 8 minutes. Add the eggplant and cook until it's heated, 1 to 2 minutes.
Remove and discard the bay leaves, and serve the curry hot. It can be cooled to room temperature and then refrigerated, covered, for up to 2 days. Reheat gently to serve.