In a large pot with a lid, heat the oil over medium heat. Add the onions and cook until they are translucent and fragrant. Then add the garlic and saute for 1 minute.
Add the uncooked lentils to the pot and the curry powder. Mix well and cook for 20 seconds constantly mixing. Add the water, cinnamon (if using), diced tomatoes, carrots, tomato paste, salt, and pepper. Mix well, cover with a lid and bring it to a boil.
Reduce the heat to a simmer and cook undisturbed for 30 minutes. Uncover, and continue to cook until most of the liquid evaporates and the lentils get creamy.
When ready, taste and adjust salt, pepper, and curry levels if needed. Then add the cilantro and mix well. Serve hot.