I have a pretty simple flow here in GRC, but for some reason I'm seeing a negative frequency mirroring the 10khz signal that I'm generating. What's causing this negative frequency to show up in the FFT graph?
The stock FFT (in GNU radio?) is a complex-to-complex transform. Thus any positive frequency peak you see represents a complex signal (phasor) that can include both real and imaginary components.
Since your cosine (or sine) waveform is strictly real (has zero or no imaginary component), the complex FFT result also includes a negative complex conjugated mirror image. Since complex conjugation inverts the imaginary component, the two imaginary components (of the positive and negative frequency peaks) cancel out, and thus represent your original strictly real signal (with zero imaginary content). That is why you see a negative frequency peak.
An asymmetric result can occur if you feed the FFT with a complex IQ signal that has non-zero imaginary components (for instance, baseband SSB). Thus, if you want to see only a positive frequency peak, then you need to feed your FFT with a positive rotating IQ signal or phasor (cos(t) + i sin(t), IIRC).