Begin by preparing the aubergine. Cut the aubergine into 1-inch cubes, leaving the skin on. Soak the cubed aubergine in a bowl of water for 30 minutes to remove any bitterness. Drain and pat the aubergine dry with a clean kitchen towel or paper towels.
In a large skillet or wok, heat 2 tablespoons of oil over medium-high heat. Add the chopped onion and sauté for 3-4 minutes until translucent and lightly browned.
Add the minced garlic and grated ginger. Sauté for an additional minute, stirring constantly to prevent burning.
Introduce the spices - cumin, coriander, garam masala, and chili powder. Stir the spices into the onion mixture and cook for 1 minute to release their aromas.
Carefully add the cubed aubergine to the pan. Gently toss to coat the aubergine pieces with the spiced onion mixture. Cook the aubergine for 5-7 minutes, stirring occasionally, until it starts to soften and develop a light golden-brown color.
Pour in the canned diced tomatoes, including the juices, and stir to combine. Slowly pour in the coconut milk, stirring continuously to create a smooth, creamy sauce.
Reduce the heat to low, cover the pan, and let the curry simmer for 15-20 minutes, stirring occasionally, until the aubergine is tender and the flavors have melded.
Season with salt and pepper to taste.
Serve the aubergine curry in bowls, garnished with freshly chopped cilantro. Enjoy with basmati rice, naan bread, or a side of cucumber raita.