In a large saucepan or stockpot, melt the butter over medium heat. Add the carrots and cook, stirring often, over medium-high heat for 5-7 minutes.
Add the shallots and saute for another 4-5 minutes until softened. Stir in the ginger, garam masala and one teaspoon of the salt and cook, stirring, one more minute.
Pour in the chicken stock and scrape up any pieces that are stuck to the bottom of the pan. Partially cover with a lid and simmer over medium-low heat for 20 minutes, or until the carrots are totally soft. If the liquid reduces too much, add some water or more stock so that the carrots are submerged.
Remove from the heat and let cool slightly. Transfer some carrots and liquid to a blender, and being very careful, blend until smooth. Placing a kitchen towel over the blender and holding the lid on firmly is a good idea so that the lid doesn’t pop off and the soup doesn’t splatter. The soup will most likely need to be pureed in batches. When it is all pureed, pour it back into the same pot.
Place the pot over low heat and stir in the coconut milk, sugar, and last teaspoon of salt. Taste for seasoning and add more salt if necessary. Once warmed through, ladle into bowls and garnish with the nuts and mint.