Put the onion, garlic, and ginger into a blender or food processor. Add 2 tablespoons of water. Blend until smooth, pausing and using a spatula to push mixture down if necessary. Pour the mixture into a bowl and set aside while preparing the tomatoes.
Peel (and deseed, if desired) the tomatoes. Put them in the (unwashed) blender or food processor and puree.
Heat oil in a large frying pan on medium heat for 2 minutes. Add pureed onion mixture and sauté for 5 minutes on medium-low heat.
Stir in the pureed tomatoes, ground red pepper, tomato paste, salt, and ½ cup water or stock (use the water to rinse out the blender container before adding it to the pan, if desired).
Simmer about 15 minutes on medium-low heat, stirring occasionally, until the gravy has thickened to the desired consistency. Adjust seasonings. This “gravy” should be a thick sauce, too thick to pour.
Cooks often add their favorite seasonings to the gravy, such as a little ground nutmeg, white pepper, curry powder, or a crumbled seasoning cube.