Can I flash a kernel without flashing a ROM? Does flashing a new kernel require flashing a new ROM?

Will flashing a new kernel wipe the data?  Because if so, I might as well flash a new ROM.

How can I see which kernels are compatible with which ROMs?
Does flashing a new kernel require flashing a new ROM?

It depends.  You can't normally flash a 2.3 kernel over a 2.2 ROM, and so on.  You can't flash a CyanogenMOD kernel on a stock ROM in most cases, and vice versa.  But you should be able to flash any Android X.X stock-based kernel (for your device) over any Android X.X stock-based ROM.

For example, there are no issues flashing a 2.2 Voodoo kernel on my 2.2 stock-based Bionix ROM for my SGS Vibrant.
Will flashing a new kernel wipe the data?

Not usually.  When flashing a lagfix ROM such as Voodoo that does advanced partitioning and formatting, there can occasionally be issues that will make you lose data.  As well, update packages can include scripts to automatically wipe the data.  You should carefully read the official description of any kernel to see if it mentions wiping data.

I've flashed dozens of kernels and only lost data once, and that was probably my fault; I had a fairly non-standard configuration.  It's always good to do a backup if you can.  Some ROMs recommend or automatically perform data wipes to eliminate any incompatible data between the two ROMs, but this is normally not an issue for kernels.
How can I see which kernels are compatible with which ROMs?

Again, any ROM based on stock is normally compatible with any kernel for your device based on a stock kernel from the same Android version.  If you have concerns I would first search the XDA posts for the kernel and the ROM to see if you can find anyone who has used them in combination.