As Igor mentioned, the easiest way is to simply programmatically change the receiver in a Payments Standard button by modifying the value of the 'business' parameter.
I.e. as a link with GET parameters:
https://www.paypal.com/cgi-bin/webscr?cmd=_xclick&amount=10.00¤cy_code=GBP&business=$receiverBusiness
Or via a :
<form method="POST" action="https://www.paypal.com/cgi-bin/webscr">
<input type="hidden" name="cmd" value="_xclick">
<input type="hidden" name="business" value="$receiverBusiness">
<input type="hidden" name="amount" value="10.00">
<input type="hidden" name="currency_code" value="GBP">
<input type="hidden" name="item_name" value="Payments Standard demo">
<input type="submit" name="submit" value="Submit">
</form>
Adaptive Payments
If you'd like a little more visibility and control over the transactions - typical for a marketplace setup - you might want to look something more refined however.
For this we currently offer Adaptive Payments, which allows you to 'chain payments' so that they flow from the sender via a first (primary) receiver to eventually the final recipient.
Quick flow diagram:
More details about Adaptive Payments is available here, with a quick runnable example available here.
If you're thinking of going this route, note that you need to apply for an 'Application ID' via https://apps.paypal.com/. Your application will need to be reviewed. More details about this are available here.