Place potatoes into a large pot and cover with water. Bring to a boil over high heat, then reduce heat to medium-low, cover, and simmer until just tender, about 15 minutes.
Drain and allow to steam dry for a minute or two.
Meanwhile, heat the olive oil in a large skillet over medium heat.
Stir in the onion and garlic; cook and stir until the onion has softened and turned translucent, about 5 minutes.
Season with cumin, cayenne pepper, curry powder, garam masala, ginger, and salt; cook for 2 minutes more.
Add the tomatoes, peas, cauliflower and potatoes.
Pour in the coconut milk, and bring to a simmer.
Simmer 5 to 10 minutes before serving.
Serve over spinach.