Heat oil in a heavy-bottomed pot over medium heat until shimmering. Add chopped onion and cook, stirring occasionally, until golden and fragrant, about 8 minutes.
Add minced garlic and grated ginger to the pot. Sauté for about 30 seconds until aromatic, being careful not to burn the garlic.
Stir in curry powder, turmeric, and coriander. Cook for 1 minute, allowing the spices to toast slightly and release their fragrant oils.
Add diced potatoes to the pot, stirring well to coat them with the spice mixture. Cook for about 5 minutes, stirring occasionally, until the edges start to brown slightly.
Pour in the coconut milk and water, stirring to combine. Bring the mixture to a gentle simmer, then cover loosely and cook for 15 minutes, or until the potatoes are tender and the sauce has thickened slightly.
Add the broccoli florets to the pot and cook uncovered for another 5-7 minutes, until the broccoli is vibrant green and tender but still has some crunch.
Season the curry with salt to taste and squeeze in lemon juice for brightness. Stir well and check the consistency—add a splash of water if it’s too thick or simmer uncovered briefly if it’s too thin.
Remove from heat and let the curry rest for 2 minutes to allow flavors to meld. Serve hot over rice or with crusty bread, garnished with herbs if desired.