Heat oil in a large skillet or cast iron pan over medium-high heat.
Add diced onion to the pan and cook for 4 minutes or until softened, stirring often.
Add diced veggies and tofu and cook for about 5 minutes, stirring often.
Add garlic, ginger, curry powder, ground coriander, cumin, paprika, cinnamon, salt and pepper. Stir and cook for 1 minute.
Add tomato paste, canned tomatoes, coconut milk, and stock.
Bring to a boil, then reduce heat to simmer gently, stirring occasionally, for 10-15 minutes or until veggies are cooked and tender.
Serve with cooked rice, topped with fresh cilantro if desired.