This approach really works well... I would add that off-loading MySQL to a different VPS within the same network works well too; latency within the same network is very negligible. Doing simple optimization such as moving/disabling mail and stuff you probably dont need works too.
Indeed, pushing MySQL onto a different VPS in the same network basically halved page generation times for my sites.
This is partly because when a table contains a TEXT field, MySQL performs all joins against that table on disk, regardless of what fields you're selecting or joining on.
Which is a problem for, oh, I dunno, every PHP blog engine / bulletin board / CMS ever.