Heat 4 tablespoons of oil over medium heat in a frying pan or sauté pan. Lower to moderate heat and add the onions and garlic. Fry until the onion caramelizes and cooks down to about half its earlier quantity.
Add the turmeric, cumin, garam masala, chili powder, coriander powder, and black pepper to the pan. Cook for 1 to 2 minutes until fragrant. If the mixture is very dry, add some water to prevent it from sticking to the pan or burning.
Add chopped tomatoes and fry for another minute or so, until the tomatoes have broken down.
Pour about a cup of water into the pan and season with salt. Bring to a simmer on low heat.
Slice the boiled eggs vertically and place them yolk down into the gravy. Spoon the masala onto the eggs so they're coated in gravy, but try not to break them into pieces. The egg halves should remain as intact as possible.
In a separate pan, heat a tablespoon of oil and fry the curry leaves until fragrant, about a minute. Add to the simmering curry.
To add additional richness to the gravy or to tone down the heat (it’s definitely a hot curry!), you could add either coconut milk or cream to mellow it down. Allow to simmer until the mixture thickens, about 15 minutes.
Garnish with cilantro and serve hot with rice or bread.