On a medium flame, heat oil in a deep pot or Dutch oven. Add cinnamon and curry leaves, followed by onions.
Saute until light golden for 5 mins and add ginger garlic. Saute for a minute and stir in all the ground spices - turmeric, salt, red chili powder, garam masala, coriander powder and cumin.
Stir in the tomatoes and cook until they lose the raw flavor and turn thick/mushy. Mix the butternut squash and pour water, followed by coconut or nut milk.
Cover and cook for 3 to 4 minutes and later add the black eyed peas. (Your black eyed peas should be soft/tender and get mashed easily when you press down. If they are undercooked they will remain the same and won't soften in the curry)
Cover and cook until fork tender but not mushy. Mine takes about 12 mins to cook but it may be different for you. If required you may add more hot water as it cooks.
Optional - Meanwhile, if using spinach, melt butter in a skillet on a medium flame and fry sliced garlic for a minute. Add the spinach and saute for 3 to 4 mins until wilted.
When the butternut squash is fork tender, add the sauteed garlic butter spinach and mix well.
Taste test to adjust salt and more garam masala if required. If the curry is runny, mash some of the butternut squash pieces with a spoon and mix well.
Serve butternut squash curry over rice/quinoa or with flatbreads chapati, roti, tandoori roti, naan or with bhakri.