I run a site for a major festival that explodes three days a year.
Normally it runs on a micro instance at amazon, and a day in advance I turn it up to a large one (with 7.5gb ram) with a 2GB cache. Otherwise it's just a standard LAMP-stack.
In my experience it's no problem what so ever to run the varnish cache on the same server. In some cases it might actually give you an advantage in latency to the backend server.
This server serves during the heavy days, around 8-12 requests a second (yes, I know this isn't exactly defined as high traffic these days).
I'd say that you can easily install varnish on the same server, until you see performance trouble. When load gets too high, inject a dedicated cache server in the equation.