Pre-heat oven to 350°F.
In a Dutch oven, melt butter over medium heat.
Add onion, mustard, salt and pepper; cook until onion is tender, 6 - 8 minutes.
Add garlic; cook until fragrant. Whisk in flour; continue whisking 3 - 5 minutes.
Whisk in milk; bring to a boil.
Reduce heat; simmer, uncovered, until thickened slightly, 8-10 minutes.
Gradually stir in 2 cups shredded cheddar cheese; stir in Monterey Jack cheese.
Add potatoes and toss to coat; simmer 10 minutes, stirring frequently.
Transfer potato mixture to a greased 13 x 9-inch baking dish.
Top with remaining cheddar cheese.
Bake, uncovered, for 1 hour.
Top with bread crumbs; return to oven until potatoes are tender, 10 - 15 minutes.
Let stand 15 minutes before serving. If desired, sprinkle with chives.