Cut eggplants into 1-inch cubes and toss with 1/2 teaspoon salt. Let sit for 10 minutes, then pat dry with paper towels.
Heat 2 tablespoons oil in a large skillet over medium-high heat. Add eggplant cubes in a single layer and cook for 5-7 minutes until golden brown on all sides. Remove and set aside.
Add remaining 1 tablespoon oil to the pan. Cook diced onion for 5 minutes until softened and lightly golden.
Add minced garlic and grated ginger, cooking for 2 minutes until fragrant. Stir in diced tomatoes and tomato paste, cooking for 3-4 minutes until tomatoes break down.
Add curry powder, cumin, coriander, turmeric, garam masala, and cayenne. Stir constantly for 1 minute to toast the spices.
Pour in coconut milk and vegetable broth, stirring to combine into a smooth sauce.
Return browned eggplant to the pan, gently stirring to coat with sauce. Bring to a simmer, reduce heat to low, cover and cook for 15-20 minutes until eggplant is tender.
Stir in lemon juice and taste for seasoning. Adjust salt and pepper as needed. Garnish with fresh cilantro and serve hot over rice or with naan.