In a large pot, melt the butter over medium heat. Add the diced onion, carrots, and celery. Sauté for about 5 minutes, or until the vegetables are tender.
Stir in the chicken broth and bring to a boil. Add the elbow macaroni and cook according to package instructions until al dente, usually about 8-10 minutes.
Reduce the heat to low and stir in the milk, garlic powder, onion powder, salt, and pepper. Mix well.
Gradually add the shredded cheddar and mozzarella cheese, stirring until melted and creamy.
Taste and adjust seasoning if necessary. If the soup is too thick, add a little more milk or broth to reach your desired consistency.
Serve hot, garnished with fresh parsley if desired.