Peel and cut up potatoes into cubes, boil until tender. (optional: If using fresh carrots, you can cook them whole with the potatoes, since they take about the same amount of time.)
In a separate pan melt 4 Tablespoons butter in a frying pan. Then add the onions and cook until they are clear.
Add ground beef to the onions. Add half a cup of beef broth and cook, uncovered, over low heat for 10 minutes, adding more beef broth as necessary to keep moist.
Drain the potatoes and carrots, add them to the onion and beef mixture. (if using canned or frozen, still add them to beef mixture.)
Mash the potatoes in bowl with remainder of butter, add salt and pepper to taste.
Place beef, onion and vegetable mixture in baking dish. Distribute mashed potatoes on top. Rough up with a fork so that the top will brown nicely.
Cook in 400 degree oven until bubbling and brown (about 30 minutes). Broil for last few minutes if necessary to brown.