Heat a teaspoon of vegetable oil in a frying pan with at least 2 inches in depth. You'll need the lid later as well. Meanwhile, chop tofu into bite-sized blocks.
Fry tofu in the frying pan on medium to high heat. Sprinkle some salt while the tofu is frying to help it brown.
When tofu is done (don't need for it to look perfect since it will be in the curry anyway!), remove from pan and set aside.
Mince red chilli, garlic, and ginger finely. Deseed the chilli if you don't like things too spicy.
Heat a tablespoon of vegetable oil in the same frying pan. Throw in the minced chilli, garlic and ginger, as well as the curry leaves and fry it for a few minutes on medium heat.
Meanwhile, slice 1/2 an onion into medium-sized pieces.
Add 2 teaspoons of curry powder and the sliced onions to the frying pan and cook for another few more minutes until they turn translucent and caramelise a little.
As the onions are cooking in the pan, peel the potato and carrot and roughly chop it into pieces. Keep an eye on the pan and don't let the onions burn - add a few spoonfuls of water now and then if needed.
Add the chopped potatoes and carrots into the pan and add about 1 1/2 cup of water, or enough to barely cover the potatoes and carrots. Cover with the lid and let it cook for at least 20 minutes, adding more water in between if necessary.
When you're ready to serve, add the tofu back into the pan, as well as 2 teaspoons of coconut milk. Feel free to add more coconut milk if you prefer.
Salt to taste and serve with rice.