Heat oil in a wide bottom pan and add the peppercorns. Give them a roast until they slightly pop (use a lid if needed) and then immediately add onions. Cook until slightly brown. (SIDE NOTE: I use diced or finely chopped onions & tomatoes. They tend to splatter less and have a different end result compared to a puree.)
Once the onions have cooked, add the chopped tomatoes and mix.
Add salt, red chili powder, garam masala, tandoori masala, turmeric, ginger, and garlic. Mix and cook for about 2-3 minutes.
Grate the hard-boiled eggs into the pan, add the water, and stir. At this point if you want the consistency a bit more gravy-like then add an extra ounce or so of water.
Cook on medium-low heat for about 2-3 minutes (until heated through).
Top with cilantro (stems taste great in this dish). Traditionally served with bread and onion salad.
Notes
I recommend chopping tomato and onions very small or food processing them. Puree is not recommended.
Add more oil for a real street food taste.
Sprinkle extra Garam Masala on top to enhance the flavor of the dish.
I love to eat this with grilled bread, but you can also enjoy it as is or with plain white rice.