Yes: in fact, you can find a vertex which gives you the optimal solution in polynomial time using a simple modification of the ellipsoid algorithm. The full proof is a little messy to write down in its entirety; it can be found in this paper by Grotschel, Lovasz, and Schrijver. Below is an outline.
The key insight is that there is a limit to how big the denominators of the of entries of the vertices of the polytope can be. One first obtains an upper bound on these denominators - lets call it $D$ - then uses the ellipsoid algorithm to find a point that is close to optimality, and then one rounds the output of the ellipsoid algorithm to the closest rational point with denominator at most $D$. If there is a unique maximizing vertex, this works. If there isn't, then one first toys around with the objective function to make sure a unique maximizing vertex exists.