Distance from the fight seems to be the biggie, along with weather. Possibly a random element too. I've rerun battles in both fair and bad weather, and the worse the weather, the lower the chance of reinforcements arriving. This seems like a good area for further experimentation. Of course, that can be a good thing: you can use distance and bad weather to prevent a rivals reinforcements, or to keep your own overly bellicose AI controlled army from arriving.
Bookmarks