I have worked in a district with high poverty, and one that was affluent. In the affluent district, students did not have to wear uniforms but instead there was a dress code, where shorts had to be a certain length, no offensive logos, etc. In the high poverty district there is a uniform, khaki or black pants, white or blue collared shirt tucked in. I have mixed feelings about school uniforms for low income students.
On the one hand, it makes it a little harder to see the haves and have nots. When I was in school there were always certain expensive brands that were the cool thing to wear, and I've noticed that in students today too. What's interesting is that even with a uniform students will find other ways to express themselves and push the envelope. So even though they are all in the same uniform, they may show status with their shoes or accessories.
A benefit to uniforms is that it is efficient. I know that when I have my clothes picked out for the week it is much easier to get going in the morning.
One problem with uniforms is that the more strict a dress code, the more time administrators and teachers need to spend enforcing it. So if part of the dress code is a tucked in shirt, a lot of time is spent tucking in shirts.
Like many other things we do in education, I'm not sure this is a well-researched area or whether we know that it works. I do know that for some kids, it can put them on an equal playing field with others. The collared shirts make the students look professional, like they are going to work at a job. I think that for students in low income schools, a uniform can be helpful for both the families and the school.