In a pot bring to a boil the water, onion, garlic, cinnamon, turmeric, garam masala, salt and pepper. Add the lamb, or chicken, reduce heat and simmer 15 – 20 minutes. Separate the lamb from the liquid and put liquid into a bowl. Set aside.
Cook eggplant, broccoli, cauliflower, potatoes, and peppers separately.
Cook rice with tomato paste, but cook only until 1/2 done.
Now, layer all the ingredients into a large pot in the following order: potatoes, onions, meat, eggplant, broccoli, cauliflower, tomatoes and peppers. Then add the half-cooked rice with liquid, and liquid from meat. Press down. Cook over low heat until the liquid is absorbed, 30-40 minutes.
Remove lid from pot and place a large platter over the pot and flip the pot so the dish is ‘upside down’ on the platter. Serve with yogurt on the side.