Why can't you set up a virtual server with your default setting and applications and then clone it? (I'm really asking for more details, not making a suggestion in the form of a question.) You also get little benefits like having your .vimrc and ssh keys copied over.
That's pretty much what I do, and I wouldn't want to have to maintain an additional "personal heroku server" that would automate the deployments in the way you're talking about.
This is sort of what I do, but the problem for me right now is keeping the machines up to date. Because I sometimes don't use a specific stack for awhile it becomes stagnant and I end up just rebuilding the image. Other than ssh keys nothing really transfers over well between configurations. That said what would be nice is if I had a way to setup a 'beacon' on each machine so that I could write a fab script (or something) that when I type fab deploy -django it would find y newly created django ready VM or whatever.
That's pretty much what I do, and I wouldn't want to have to maintain an additional "personal heroku server" that would automate the deployments in the way you're talking about.