In a large mixing bowl, combine the flour and salt. Add the vegetable oil or melted butter and mix well.
Gradually add water while mixing until a soft dough forms. Knead the dough on a lightly floured surface for about 5-7 minutes until smooth and elastic.
Cover the dough with a damp cloth and let it rest for at least 30 minutes.
In a large skillet or pot, heat the vegetable oil over medium heat. Add the finely chopped onion and minced garlic, and sauté until the onion is soft and translucent.
Add the chicken, beef, or goat pieces to the skillet and cook until browned on all sides.
Stir in the chopped tomato, curry powder, ground cumin, ground coriander, ground turmeric, ground black pepper, and salt. Cook for about 5 minutes until the spices are fragrant.
Add the chopped potatoes and water or chicken broth. Bring to a boil, then reduce the heat and let it simmer for about 30-40 minutes, or until the meat and potatoes are tender and the sauce has thickened.
Divide the dough into 6-8 equal portions and roll each portion into a ball.
On a lightly floured surface, roll out each dough ball into a thin circle about 8-10 inches in diameter.
Heat a large skillet or griddle over medium-high heat. Place a rolled-out dough circle onto the skillet and cook for about 1-2 minutes, until bubbles start to form on the surface.
Flip the roti and cook the other side for another 1-2 minutes until lightly browned and cooked through. Repeat with the remaining dough circles.
Place a generous spoonful of the meat and potato filling in the center of each cooked roti. Fold the sides of the roti over the filling to enclose it.
Garnish with fresh cilantro and serve the roti hot.
Enjoy your meal!