Preheat oven to 180°C. Cut beef into 2.5cm-3cm cubes. Season with salt and pepper, add 2 tbsp oil, and mix well. Heat a large frypan over a medium-high heat. Brown the beef in 2 or 3 batches.Remove each batch and place in casserole dish.
Reduce heat in pan and add a little oil, add the curry paste, onion and garlic, cook for 1 minute. Add the flour and stir to mix. Gradually pour in the stock, sugar and tomatoes or coconut milk, stirring well. Stir until the mixture boils. Pour over the beef in the casserole dish and stir to combine.
Cover the casserole dish, place in oven, and cook until beef is very tender. Stir every 40 minutes or so, add water if needed to keep the ingredients just covered.
Place the browned beef and other ingredients in a heavy-based deep-sided pot. Partially cover, keep the heat low. Simmer for 2-2½ hours or until the meat is very tender. Stir occasionally; add water if needed during cooking to keep ingredients well covered.
For Beef Madras, use madras curry paste and diced tomatoes. Madras curry paste is hot, so start out 2 tbps paste to tone it down if you like.
Serve with Indian lime pickles, mango chutney and basmati rice.