Toast rye bread in a toaster until lightly browned. Cut into cubes.
Melt butter in a large pot over medium-high heat. Cook and stir onion and celery in butter until tender, 5 to 10 minutes. Stir flour into onion mixture. Gradually stir water and bouillon into onion mixture. Bring to a boil, reduce heat to low, and simmer for 5 minutes.
Stir corned beef, half-and-half, 1 cup Swiss cheese, and sauerkraut into pot. Cook, stirring frequently, until soup thickens, about 30 minutes.
Set oven rack about 6 inches from the heat source and preheat the oven's broiler.
Ladle soup into 8 oven-proof bowls. Top each soup bowl with bread cubes and 1/4 cup cheese.
Broil soup in the preheated oven until cheese is melted, 2 to 3 minutes.