Combine the milk and breadcrumbs. Place the breadcrumbs in a small bowl, pour in the milk, and stir to combine. Set aside while preparing the rest of the meatball mixture. The breadcrumbs will absorb the milk and become soggy.
Whisk the egg, salt, pepper, Parmesan, and parsley. Whisk the egg in a large bowl until broken up. Add the Parmesan, parsley, salt, and a generous quantity of black pepper, and whisk to combine.
Add the ground meat. Add the meat to the egg mixture. Use your hands to thoroughly mix the egg mixture into the ground meat.
Add the onions and soaked breadcrumbs. Add the onions, garlic, and soaked breadcrumbs. Mix them thoroughly into the meat with your fingers. Try not to overwork the meat; pinch the meat between your fingers rather than kneading it.
Form the meat into meatballs. Have a rimmed baking sheet ready. Pinch off a piece of the meat mixture and gently roll between your hands to form 1 1/2-inch meatballs (about 2 tablespoons each). Continue shaping until all the meat is used, placing the meatballs on the baking sheet so that they are not touching.
Option 1: Roast or broil the meatballs in the oven. Broil the meatballs on a rimmed baking sheet for 20 to 25 minutes, or roast at 400°F for 25 to 30 minutes. (Watch closely if making meatballs made with lean meat.) The meatballs are done when cooked through, the outsides are browned, and they register 165°F in the middle on an instant-read thermometer. Serve immediately.
Option 2: Cook the meatballs directly in sauce. Bring a marinara or other pasta sauce to a simmer and add as many meatballs as will fit comfortably in the pan. Cover and simmer for 30 to 35 minutes. The meatballs are done when they’re cooked through and register 165°F in the middle on an instant-read thermometer. Serve immediately.
Doubling this recipe: This recipe can be doubled for larger crowds.
Storing leftover meatballs: Store leftover meatballs, either on their own or in a sauce, in a covered container in the refrigerator for up to 5 days. Reheat over low heat in a saucepan or in the microwave.
Make-ahead meatballs: Meatballs can be shaped and kept refrigerated up to a day ahead. Arrange them in a casserole dish or on a baking sheet, but don’t squish together. Cover and refrigerate for up to 1 day.
Freezing uncooked meatballs: Prepare the meatballs through Step 5. Arrange in a single layer on a baking sheet and freeze until solid. Transfer the meatballs to a freezer container or freezer bag, and freeze for up to 1 month. (Meatballs can be frozen for longer, but tend to develop freezer burn.) Thaw meatballs in the refrigerator overnight before cooking.
Freezing cooked meatballs: Let the cooked meatballs cool completely, then arrange in a single layer on baking sheet and freeze until solid. Transfer to a freezer container or bag and freeze for up to 2 months. Frozen meatballs can be thawed overnight in the refrigerator or reheated directly from the freezer. Reheat meatballs in a simmering sauce for 10 to 15 minutes or in a warm oven for 10 to 15 minutes.