01 - Heat vegetable oil in a large, heavy-bottomed pot over medium heat.
02 - Add onions and cook until softened and golden, approximately 8 minutes.
03 - Stir in minced garlic and grated ginger, cooking for 1 minute until fragrant.
04 - Incorporate curry powder, cumin, coriander, turmeric, chili powder, cinnamon stick, cloves, and bay leaves. Stir constantly for 1 to 2 minutes to release aromas.
05 - Add beef cubes and brown evenly on all sides, about 5 minutes.
06 - Stir in diced tomatoes and cook until softened, about 4 minutes.
07 - Pour in coconut milk and beef stock, mixing well and scraping browned bits from the pot's base.
08 - Bring to a gentle simmer, cover, and cook over low heat for 1 hour, stirring occasionally.
09 - Stir in potatoes if using, season with salt and pepper, and simmer uncovered for 30 to 40 minutes until beef is tender and sauce thickens.
10 - Extract bay leaves, cinnamon stick, and cloves before serving.
11 - Sprinkle with chopped cilantro and serve hot accompanied by lime wedges.