I profiled the difference between Billy's and Reed's solutions. Polaris878, take good note of the results and remember that premature optimization is the root of all evil ;-)
I rewrote the solutions in VB (because I'm currently programming in that language) and used int keys (for simplicity), otherwise it's the exact same code. I ran the code with a dictionary of 10 million entries with a value of "true" for each entry.
Billy Witch Doctor's original solution:
Dim keys = dict.Keys.ToList
For i = 0 To keys.Count - 1
dict(keys(i)) = False
Next
Elapsed milliseconds: 415
Reed Copsey's solution:
For Each key In dict.Keys.ToList
dict(key) = False
Next
Elapsed milliseconds: 395
So in that case the foreach is actually faster.