Prepare all of your vegetables, keeping them in separate bowls for now. Peel and thinly slice the red onions, ideally on a mandolin grater. Peel and cube the butternut squash. Separate the cauliflower into florets. Trim and halve the green beans. And finally slice the cherry tomatoes in half.
Prepare your aromatics. These can all go into the same bowl. Peel and grate the ginger root on a microplane grater. Then add pressed garlic cloves. Add the finely chopped the green chili, then add the garam masala, turmeric, cumin, and salt.
Place a very large stainless steel frying pan for which you have a lid over medium heat and add the olive oil, then the onions. If you don't have a pan big enough, you can also do this in a large saucepan. Cook until the onions are completely soft and just starting to brown a little, 7-10 minutes. If your onions start to really stick or burn, turn down the heat or add a tablespoon or two of water to the pan.
Add the aromatics (ginger, garlic, and spices) to the onions and stir to evenly coat and just begin to cook the garlic and ginger, 2-3 minutes. Then add the vegetable stock, taking a moment to scrape up any fond on the bottom of the pan. Then add the squash, tomatoes, and cauliflower, cover, and let cook for 15-20 minutes or until the squash is starting to feel quite soft when poked with a fork or paring knife.
After 15-20 minutes, add the green beans, stir, cover again and cook for 5 more minutes. At this point the squash should be quite soft and cooked through. Feel free to give it more time if not.
Once the squash is fully cooked, remove from the heat, and add the zest of the lime, followed by the lime's juice. Stir to mix in the lime zest and juice.
Serve over basmati rice and topped with the cilantro, if using. This dish keeps well in the fridge for up to 4 days.