The Black-Scholes 'normal-vol' formula leads quickly to a similar approximation to the one described by olaker.
Click here for a paper which contains a formal derivation of the call and put prices based on a normal model (ie a brownian motion rather than a geometric brownian motion).
The formula for the call price is:
$$\text{Call} = (F-K)N(d_1) + \frac{\sigma
\sqrt{T-t}}{\sqrt{2 \pi}} e^{-\frac{1}{2} d_1^2},$$
where
$$d_1 = \frac{F-K}{\sigma\sqrt{T-t}}.$$
BTW, I work in fixed income, so I always tend to write a version that is suitable for swaptions.
Options which are ATM
You can see that for $F=K$ this becomes $\text{ATMCall} = \frac{\sigma \sqrt{T-t}}{\sqrt{2 \pi}} \approx 0.4 \, \sigma \, \sqrt{T-t}$.
Options which are not ATM
I have recently discovered a generalization of this formula which works very well for strikes which are not at the money too. See my blog for a longer discussion, here are the main points.
The standard decomposition for an option is:
$$\text{Option value} = \text{Intrinsic value} + \text{Time value}.$$
In the Black-Scholes normal formula above, if you investigate the term $(F-K)N(d_1)$ in a spreadsheet, you’ll see that for small levels of volatility and maturity (try, for example, $\sigma=0.0025$, Maturity=1) it is actually quite close to $\max(0,F-K)$ – which is the intrinsic value of the call.
Consequently, the BS normal formula is almost:
$$\text{Call Price} = \text{Intrinsic Value} + \text{ATMPrice} \times e^{-\frac{1}{2} d_1^2},$$
where
$$\text{ATMPrice} = \frac{\sigma \sqrt{T-t}}{\sqrt{2 \pi}}.$$
However, if you compare this approximation to the true BS formula in a spreadsheet, you’ll see that around the strike (especially for larger values of $\sigma$) it gives too much value to the call: basically the term $\text{ATMPrice} \times e^{-\frac{1}{2}d_1^2}$, is too big when $d_1$ is non-zero and small. This is telling us that the difference between $(F-K)N(d_1)$ and $\max(0,F-K)$ gets important near the strike. As I say, have a look in a spreadsheet.
Nonetheless, this simple-but-wrong formula for the Call Price points us in the right direction: it shows that the time value of the option should be written in terms of the price of the ATM option.
Here is my solution.
I call it The Hardy Decomposition:
$$\text{Call Price} = \text{Intrinsic Value} + \text{ATMPrice}\times\text{HardyFactor}$$
where
$$\text{HardyFactor} = e^{-\frac{1}{2} d_1^2} + \frac{d_1}{0.4}N(d_1) – \max(\frac{d_1}{0.4},0).$$
So far this is just a rearrangement of the original Black-Scholes 'normal-vol' formula.
The key result is that the $\text{HardyFactor}$ is well approximated by a simple expression:
$$\text{HardyFactor} \approx (1- 0.41 |d_1|) e^{-|d_1|}$$
So you can actually use the following as a pretty-good approximation for call prices:
$$\text{Call Price} = \text{Intrinsic Value} + \text{ATMPrice}\times (1- 0.41 |d_1|) e^{-|d_1|}.$$
A similar result holds for put options.
You can use this Hardy Decomposition to calculate option prices in your head - you only need to remember a few values:
