Heat up oil in a large pan over medium heat. Sauté the onion until translucent, about 3-4 minutes.
Add the garlic and ginger. Sauté for 30-60 seconds until fragrant.
Add the cumin, coriander, turmeric, garam masala, and red pepper flakes. Cook for 30-60 seconds until fragrant. Stir often to avoid burning.
Add in the tomatoes together with their juices and cook for 4-6 minutes, stirring frequently, until the tomatoes have softened and broken down. (the mixture in the pan should have a thick-ish gravy consistency when everything softens and somewhat melds together)
Add the broth, potatoes, and salt to the pan. Stir well to combine, then turn up the heat and bring to a high simmer. Now lower the heat to maintain a mild-medium simmer. Cover and cook for 5-6 minutes. Stir occasionally.
Now add in the cauliflower and stir well to combine (if pan is dry, add a small amount of broth or water). Cook for 10-15 minutes until potatoes are cooked throughout and cauliflower is crisp-tender. Stir occasionally. Now, uncover and cook for 1-2 minutes to reduce the remaining liquid in the pan. Check for seasoning and add more if needed.
Remove from heat and stir in the lime juice and sprinkle with chopped cilantro. Serve with naan and rice. Enjoy!