If you call
bitcoin-cli settxfee <fee>
just before call
bitcoin-cli sendtoaddress "1LipeR1AjHL6gwE7WQECW4a2H4tuqm768N" <value>
Then the fee will be <fee>.
Important note: make sure in the graphic mode (when you start with bitcoin-qt command) the "custom" is selected, otherwise your command settxfee will be ignored (see image bellow).
Also, I'm not sure if this option is selected by default, and I am not sure as well if it you can set "custom" via API. If someone knows that, please edit this answer and fix it.
Note 2: I'm not sure if this is strictly necessary, maybe not. I didn't make many tests. The test I made was starting bitcoin with bitcoin-qt -txindex -server & and then letting the interface open. If "recommended" is selected the command settxfee will be ignored. I didn't tested e.g. what if let the "recommended" option selected, close the interface and then start with bitcoind -txindex for example.

2thx for the personal link @GeorgeKimionis! i kinda thought that i would have to create the raw tx, but wanted to make sure i wasn't missing something! – Jon B – 2014-06-07T18:54:54.593
How exactly does the graphical wallet calculate fees then? In bitcoin 0.9 at least, it'll tell you just before sending a transaction the amount of fees that is required to send it. – Earlz – 2014-06-07T19:12:42.240
@Earlz the reference client uses its own coin selection algorithms and calculated the tx fees based on the inputs and outputs selected by this algorithm, this functionality however is only exposed through the RPC API commands:
sendfrom,sendmany, andsendtoaddressthat return the tx id if successful which you have to look up after the tx is sent and find out what the tx fee was, in other case you can send a raw tx and calculate all figures before the tx is sent. – George Kimionis – 2014-06-08T09:12:16.980