Heat oil in a large pot over medium heat until it shimmers. Cook onion and curry leaves, stirring occasionally, until onion is dark brown, 12 to 15 minutes. Add tomato and cook, stirring occasionally, until softened, 3 to 5 minutes.
Meanwhile, soak rice in water to cover for 10 minutes. Drain well.
Add beans, carrots, peas, potato, chile powder, biryani masala powder, and salt to onion mixture. Cook, stirring occasionally, 2 minutes. Stir in drained rice and water and bring to a boil. Reduce heat to low and cook, covered, until water is absorbed, about 30 minutes. Stir in cilantro and let stand, covered, 10 minutes before serving.