In a large bowl, whisk together the almond flour, arrowroot, baking powder, and salt until combined. Add the yogurt and water and stir until a paste-like batter forms. If you need more water, add it a little bit at a time, but you want the batter to be thick like glue so it sticks to the cauliflower florets.
Dip the cauliflower florets in the batter, coating all the way and then place on a parchment-lined baking sheet. Bake the cauliflower for 20 minutes, until the breading starts to turn golden brown.
While the cauliflower is baking, make the sauce. Melt the butter in a large skillet over medium heat. Add the garlic and onion and sauté until translucent, about 5 minutes. Next, add the garam masala seasoning, turmeric, and ginger and sauté for another couple of minutes. Finally, add the diced tomatoes, coconut milk, maple syrup, and salt. Stir to combine and let it simmer another 10 minutes. If you desire a smoother sauce, you can blend the sauce and then return it to the skillet.
Right before serving, add the breaded cauliflower to the sauce and gently toss to coat. Serve over rice, if desired, and garnish with fresh cilantro.