Melt the butter in a large skillet over medium heat. Add the onion and sauté, stirring occasionally, until softened, about 3-4 minutes.
While the onions are cooking, mix the bread pieces with the milk, then set them aside for a few minutes until soaked through. Once soaked, pulverize it with an immersion blender or food processor (it will be goopy). Pour into a large bowl.
Add the onions to the bread mixture with the eggs, ground beef, salt, pepper, nutmeg, and cardamom. Using your hands, mix the ingredients well until they are well combined.
Roll the meat into balls and place them onto a plate. I made 18 meatballs, more or less, depending on the size of the meatballs.
Heat 3 tbsp of butter in a large skillet over medium heat. When the butter has melted, add half of the meatballs to the pan (don't overcrowd the pan). Brown the meatballs slowly on all sides.
Be gentle when you turn them so they don't break apart. Do not cook the meatballs completely; only brown them at this stage.
Once browned, remove them to a plate and cook the remaining meatballs.
Once all of the meatballs are cooked and the skillet is empty, add the flour to the same skillet. Whisk in the butter from the pan (from cooking the meatballs) with the flour until it's the color of creamy coffee; this is a classic roux.
As the roux is cooking, heat the beef broth until warm. When the roux has cooked to the color of creamy coffee, add the warmed beef broth a little at a time, and keep stirring and adding stock slowly until the sauce becomes silky.
Add the meatballs back to the sauce and turn the heat to low. Cover with a lid and cook for 10 minutes.
To finish the sauce, remove the meatballs to a serving bowl, then add the sour cream and (if using) jelly to the sauce and stir until well combined. Taste the sauce and add more salt, pepper, or jelly, as needed.
Serve the meatballs and sauce over egg noodles or mashed potatoes. Enjoy!