If using regular bunch spinach, rinse and stem leaves, then chop into 2- to 3-in. pieces. Heat oil in a 6- to 8-qt. pot over medium heat. Add onions and garlic; cook, covered, until translucent, 5 to 7 minutes. Add 1/2 cup water, a pinch of salt, and enough spinach to fill pot. Cook, covered, just until wilted; add rest of spinach and turn to wilt. (If using frozen spinach, add now.) Cook, covered, just until evenly wilted and tender (add some water if necessary to keep steam going). Season with salt to taste.
Drain spinach; return to pot. Stir in béchamel, parmesan, horseradish, and sour cream.
Heat over low heat until bubbling, then spoon into a serving dish. Top with toasted bread crumbs and bacon.