Is there a good formula (the one on the wiki confuses me) that say "At a given overall Network Hash rate, what should the difficulty be?"
difficulty = 600 / (2^32 / NetworkHashRate)
or
difficulty ~= NetworkHashRate * 1.4E-07
The term '2^32/NetworkHashRate' is the expected number of seconds to find a 1-difficulty block. The bitcoin protocol stipulates that a block should be found, on average, every 600 seconds. So just take 600 seconds and divide by that number, and you'll have your required difficulty.
For example, say the overall network hashrate is 15 terahash per second. So our expected difficulty would be:
difficulty ~= 15,000,000,000,000 * 1.4E-07
difficulty = 2,100,000
And that is pretty much where we are today.