Pulse ginger and garlic in a blender or food processor until they are both finely chopped. Add the tomatoes with the juice and the cayenne pepper. Pulse together until combined but don't let it turn into a puree. Set aside.
Heat oil in a nonstick pan or large skillet over medium heat. Add onion and bell pepper. Cook, stirring frequently, until softened. About 10 minutes. Stir in potatoes, carrots, garam masala, and chili powder. Cover and cook over medium-low heat for 10 minutes. Stir occasionally to keep from sticking.
Add cauliflower tomato mixture, and 1/2 cup water. Simmer for 20 minutes uncovered.
Remove from heat, stir in coconut milk, and season with pepper.