Cut tofu into slices of the size you desire (e.g. 12 rectangular pieces or small cubes).
Mix together garlic, ginger, shallots, coriander powder, cumin, chilli paste, soy sauce, water, lemon juice, lemon rind, sugar, 1 tablespoon of the oil, and the salt in a dish to make a marinade. Stir it well.
Place the tofu in the marinade, making sure each piece is well coated. Cover and leave in the refrigerator for at least 1 hour (2 or 3 hours would be ideal).
Heat a frying pan to medium-hot and put the rest of the oil (1 T) in it. Take the tofu out of the dish, letting excess marinade drip back into the dish. Do not discard the leftover marinade! Cook tofu in pan for 5 to 10 minutes, until nicely browned.
When the tofu is cooked, put it aside and keep it warm.
Turn the heat down to medium-low and pour the leftover marinade (chunky bits and all) into it. Stir for a minute or two and add the coconut milk, turning the heat down to low as you do so. Bring to a boil, or until it reaches consistency you desire (I like a thick sauce, but not too thick), and its all ready!
Place the tofu on the steamed rice and pour the sauce over it. Serve the steamed vegetables next to the rice, garnish with coriander leaves and enjoy!