Cook the ground beef in a large Dutch oven over medium-high heat, breaking it into crumbles, until no longer pink. Drain the fat, leaving about 1 tablespoon in the pot.
Add the onion, carrots, and celery. Cook 3–4 minutes, until starting to soften. Stir in the basil and red pepper flakes.
Add the chicken broth and potatoes. Bring to a boil, reduce to a gentle simmer, cover, and cook 12–18 minutes, stirring occasionally, until the potatoes are fork-tender.
In a separate saucepan, melt the butter over medium heat. Whisk in the flour and cook 2–3 minutes, whisking constantly, until bubbly and lightly golden.
Gradually whisk in the milk until smooth. Stir in the salt and white pepper and cook 2–3 minutes, until slightly thickened.
Stir the milk mixture into the simmering soup. Cook gently 3–5 minutes, stirring, until the broth thickens.
Reduce the heat to low. Add the cubed Velveeta and stir until completely melted. Gradually stir in the shredded cheddar until smooth. Do not let the soup boil after adding the cheese.
Taste and adjust the seasoning. Ladle into bowls and garnish with extra shredded cheddar.