Cut in the cold butter with a pastry blender or your fingers until the mixture resembles coarse crumbs with some pea-sized pieces of butter remaining.
Gradually add ice water, 1 tablespoon at a time, mixing until the dough just comes together. Do not overmix.
Divide the dough in half, flatten each half into a disk, wrap in plastic wrap, and refrigerate for at least 30 minutes.
In a separate bowl, combine blueberries, sugar, cornstarch, lemon juice, and cinnamon. Toss gently to coat.
Preheat oven to 400°F (200°C).
On a lightly floured surface, roll out one disk of dough into a 12-inch circle. Carefully transfer it to a 9-inch pie plate. Trim the edges, leaving about a 1-inch overhang.
Pour the blueberry filling into the pie crust. Dot the top with the small pieces of butter.
Roll out the second disk of dough. You can either place it as a full top crust (cutting vents) or cut it into strips for a lattice top.
Place the top crust over the filling. Crimp the edges of the top and bottom crusts together to seal. If using a full top crust, cut slits in the top for steam to escape.
In a small bowl, whisk together the beaten egg and milk. Brush this egg wash over the top crust.
Bake for 20 minutes at 400°F (200°C). Then, reduce the oven temperature to 375°F (190°C) and bake for another 30-35 minutes, or until the crust is golden brown and the filling is bubbly. If the crust starts to brown too quickly, tent it with foil.
Let the pie cool completely on a wire rack for at least 3-4 hours before slicing and serving. This allows the filling to set properly.
Notes
Serve warm or at room temperature, perhaps with a scoop of vanilla ice cream or a dollop of whipped cream.