01 - Heat vegetable oil in a large heavy pot over medium-high heat. Brown beef cubes in batches, then remove and set aside.
02 - Add chopped onions to the pot and sauté until golden brown, about 8 minutes. Add minced garlic and grated ginger; cook for 1 minute until fragrant.
03 - Stir in tomato paste and cook for 1 minute. Add diced tomatoes and cook for 2-3 minutes, stirring frequently.
04 - Mix in ground cumin, coriander, turmeric, chili powder, garam masala, cinnamon, salt, and black pepper. Stir to evenly coat the onion and tomato mixture.
05 - Return browned beef to the pot. Pour in beef broth and bring to a simmer. Cover and cook over low heat for 1 hour, stirring occasionally.
06 - Stir in coconut milk and sliced fresh chilies if using. Simmer uncovered for 20-30 minutes until beef is tender and sauce thickens.
07 - Rinse basmati rice under cold water until water runs clear. Combine rice, water, butter or ghee, and salt in a saucepan. Bring to a boil, cover, reduce heat to low, and cook for 15 minutes. Remove from heat and let stand covered for 5 minutes. Fluff with a fork.
08 - Plate the spicy beef curry over basmati rice and garnish with chopped cilantro.