Odessa Mayor David Turner addressed the crowd at the vigil, saying, "nothing could have prepared us for a moving active shooter tragedy that happened." Police say the gunman had an AR-type rifle.
He shot dead seven people and wounded 22 others, including a toddler who was shot in the face, before he was finally killed by police.
Turner said, "the reason that person was stopped was because of a Midland police officer and an Odessa police officer.
They rammed his car, stopped him, and when he got out, they shot him dead.
And I thank them." It's the second mass shooting in Texas in four weeks.
It began on Saturday afternoon with a routine traffic stop and ended when the suspect, a white male in his 30s, was cornered by officers in the parking lot of a cinema complex.
Police, motorists and shoppers were all caught up in the chaos that unfolded between the cities of Odessa and Midland.
Authorities have said the shooter was known to police and lived locally.
Authorities said the investigation continues, but there was no apparent link to domestic or international terrorism.