Place beef cubes in a shallow glass dish. In a blender or food processor fitted with a metal blade, place the ginger, garlic and vinegar, mix until well combined, about 30 seconds. Add chilli powder, tumeric, cumin, cinnamon and salt and mix until smooth.
Pour the spice mixture over the beef. Cover and marinate in the refrigerator for 1 hour.
Heat the oil in a large non-stick frying pan, over a medium heat, for 1 minute. Add shallots and cook for 8 minutes, stirring frequently.
Drain beef and reserve liquid. Add beef to pan and cook, stirring occasionally, until beef changes colour on all sides. Add reserved liquid, sugar and tomato. Cover and cook over a medium-low heat for 4--50 minutes, until tender.
Place the curry in a serving bowl, garnish with corriander and serve immediately.