To prepare cauliflower, bring first 3 ingredients to a boil in a large saucepan. Add cauliflower florets; cover, reduce heat, and simmer 5 minutes or just until tender (do not overcook). Drain.
To prepare spice mix, combine cardamom, cloves, cinnamon, and bay leaf in a medium nonstick skillet; cook over medium heat 2 minutes or until toasted and fragrant. Place mixture in a coffee or spice grinder; process until ground.
To prepare sauce, heat oil in skillet over medium heat. Add onion; sauté 8 minutes or until lightly browned. Stir in cardamom mixture, almonds, and next 5 ingredients (through garlic); cook 2 minutes. Remove from heat; cool slightly.
Preheat oven to 350°.
Place onion mixture and 1/3 cup water in a blender, and process until almost smooth, scraping sides of blender occasionally. Place onion mixture in skillet; gradually stir in yogurt. Cook over low heat 5 minutes, stirring frequently.
Place cauliflower in a shallow 2-quart baking dish; pour onion mixture over cauliflower, tossing to coat. Bake at 350° for 20 minutes or until thoroughly heated and just beginning to brown. Sprinkle with cilantro.