Heat oil in a large frying pan or skillet over high heat.
Add beef. Sauté, stirring, for 7-8 minutes or until beef pieces are browned on all sides.
Reduce heat to medium-high.
Add water, beef stock (broth), onions, tomatoes, garlic, ginger, green chilies, ground turmeric and red chili powder.
Stir to combine. Season with salt. Cover and cook for about an hour or until the beef pieces are soft and tender. (Add more water if necessary)
Add ground coriander. Stir to combine. Simmer for about 5 minutes.
Add cream, yogurt, garam masala, ground black pepper, ghee or butter and chopped coriander (cilantro) leaves. Stir to combine.
Simmer for about 8-10 minutes.
Garnish with ginger, green chilies and coriander (cilantro) leaves.
Serve with rice, naan and pappadums.
Make this in slow cooker:After step 2, transfer beef to slow cooker alongside the remaining ingredients excluding cream, yogurt, garam masala, black pepper, ghee and coriander leaves that are added once the beef is cooked. Cook over low for 8 hours or high for 6 hours. Add the remaining ingredients. Simmer for another 5 minutes. Garnish and serve.
Make this in instant pot:In sauté mode, brown beef as in step 1 and 2. After step 2, add ground coriander, cream, yogurt, garam masala, black pepper, ghee and coriander leaves. Cover the pot with lid. Select manual pressure cook mode. Set the timer for 30 minutes. When done, let the pressure release naturally for 15 minutes. Remove lid. Garnish and serve.