01 - Combine beef cubes with yogurt, lemon juice, turmeric, and salt in a bowl. Mix thoroughly and refrigerate for at least 30 minutes or up to overnight.
02 - Heat vegetable oil in a large heavy-bottomed pot over medium heat. Add onions and cook until golden brown, about 8 to 10 minutes.
03 - Add minced garlic and grated ginger to the pot and cook for 1 minute until aromatic.
04 - Stir in ground coriander, cumin, chili powder, garam masala, black pepper, and cinnamon. Cook while stirring constantly for 1 minute.
05 - Add marinated beef to the pot, searing on all sides until browned, approximately 5 minutes.
06 - Incorporate chopped tomatoes and cook until softened, about 5 minutes.
07 - Pour in coconut milk and beef stock. Bring mixture to a boil, reduce heat to low, cover, and simmer for 1½ hours, stirring occasionally, until beef is tender.
08 - Adjust salt as needed. Garnish with fresh cilantro before serving.