Preheat your oven to 350°F (175°C) and line baking sheets with parchment paper.
In a stand mixer with the paddle attachment, beat the cold butter and sugar together on medium speed until the mixture is creamy and slightly fluffy, about 2-3 minutes. The cold butter will make the cookies more tender and help them hold their shape.
Add the cold eggs, one at a time, mixing well after each addition.
Mix in the almond or vanilla extract and cold half and half until just combined.
In a separate bowl, whisk together the flour, baking powder, and kosher salt.
Gradually add the dry ingredients to the wet ingredients, mixing on low speed until a dough forms. The dough may seem slightly stiff, but this helps keep the cookies from spreading.
Divide the dough in half, shape each half into a flat disc, and wrap tightly in plastic wrap. Refrigerate for at least 30 minutes (this helps firm up the butter and make rolling easier).
Lightly flour a clean surface and roll out the dough to ¼-inch thickness.
Use heart-shaped cookie cutters to cut out shapes, then transfer them to the prepared baking sheets, leaving about 1 inch of space between cookies.
Bake for 10-12 minutes, or until the edges are set and just barely golden. Let the cookies cool on the baking sheet for 5 minutes before transferring to a wire rack to cool completely.
For the icing: In a bowl, whisk together powdered sugar and half and half until smooth. Adjust consistency by adding more half and half 1 teaspoon at a time if needed.
Transfer the icing to a piping bag (or use a ziplock bag with a small corner snipped off).
Decorate the cooled cookies with the icing, using swirls, outlines, or full coverage.While the icing is still wet, sprinkle on Valentine’s-themed sprinkles for extra cuteness. Let the cookies sit for about 2-3 hours for the icing to fully set before stacking or storing.