Press the tofu for 10-15 minutes, You do this by putting the block of tofu on a plate, Place another plate on top and weight that plate with something heavy like a big can of tomatoes, Drain the liquid.
You can skip this step but it makes the tofu a little meatier and less watery.
Cut the tofu into 1/2" cubes.
Heat oil in a large skillet or wok.
Stir in the ginger and add the garlic and onions and let saute for a few minutes.
Add the tofu and cook over medium-high heat, stirring frequently until the tofu is lightly browned on most sides, about 5 minutes.
Open can of tomatoes and crush with your hands into the skillet.
Now add your curry powder, cinnamon, and chili powder.
Stir occasionally until liquid from tomatoes has reduced.
Add finely chopped cilantro or parsely (or both, as I do).