Heat oil in a large pot over medium heat. Add cinnamon stick, cloves, star anise, and peppercorns; cook and stir until spices start to pop. Add dried chile peppers, urad dal, and fennel seeds; cook until dal starts turning golden, 1 to 2 minutes.
Stir onions, garlic, and ginger into the pot. Cook and stir until garlic just starts to turn golden, 1 to 2 minutes. Add garam masala, chile powder, turmeric, and salt; cook 1 minute more.
Stir 1 cup of water, tomato puree, and tomato paste into the pot. Cook until tomato puree thickens, about 5 minutes. Stir in remaining 1 cup water, coconut, and coconut milk. Bring to a simmer over medium heat. Reduce heat to low; stir in tamarind juice.
Bring curry back to a boil. Reduce heat to low; add crabs to the pot. Cook over medium-low heat until crabmeat is opaque, 20 to 25 minutes. Remove from heat and let stand until crabs absorb curry flavors, about 2 hours.