VPS's can be dynamically resized for 1gb to 30gb. They will also resize themselves upward when they need more memory. Billing is actually computed every time the size changes and properly pro-rated for the amount of time the server was set for a size.
Another user created a script to help keep the size optimized, and thus minimize the monthly bill. Forum thread here.
You can in effect "prepay" if you want or need to, but you won't know the exact amount of any months charge now. What you can do is estimate what you think you will pay for 6 months service, and then make a payment on your dreamhost account. As they bill you it will subtract from the amount you've pre-paid.