Add the coconut milk and spinach to a large pot. Stir and cook over medium heat until the coconut milk is warmed through and has wilted the spinach. Remove from the heat as soon as the spinach has wilted to avoid over cooking the spinach.
Transfer the warm coconut milk and spinach to a blender and pulse until the spinach is in small pieces (you can choose to blend until smooth, if you prefer). Set this mixture aside.
Dice the onion, mince the garlic, and grate the ginger. Add the onion, garlic, and ginger to a large skillet along with the olive oil. Sauté over medium heat until the onions are soft (about 5 minutes).
Add the cumin, garam masala, turmeric, and cayenne to the skillet. Stir and cook the spices with the onion, garlic, and ginger for about two minutes more.
Dice the tomato and add it to the skillet along with about 1/4 cup water. Stir and cook the tomato with the other ingredients, dissolving any browned bits off the bottom of the skillet, until the tomato has broken down (5-8 minutes).
Finally, add the coconut and spinach mixture to the skillet and stir to combine. Allow the mixture to heat through, stirring occasionally.
Taste the creamed spinach and add salt to taste. Start with 1/4 tsp, adding more as needed until the flavors pop (I added 3/4 tsp).