Yes, always flash the kernel on top of the rom. Make sure you pick a froyo kernel,
this thread put together by GirlLuvsDroid is very helpful.
I have had great luck with the Chevy's kernels and P3's kernels, I would suggest trying those two 'sets' of kernels first.
There are 2 things to consider when choosing a kernel:
1) The voltage (from low to high)- Ultra low, low, medium/standard, Increasing.
2) The speed - Ranges from 600mhz to 1.4ghz.
The lower the voltage, the more difficult it is for the phone to maintain stability. Also, the higher the speed, the more likely you are to incur instability. (Also, the lower the voltage, the less battery it will use).
If you choose a kernel that's too fast in speed or too low in voltage, you may suffer bootloops.
Bootloops are ok. If that happens, just pull your battery, put in back in and go into recovery and flash a different kernel until one works. Due to the potential for bootloops, I would download a number of kernels onto your SD card. That way if one gives you the loops, you can just flash another one. Save at least 3. And if none of the kernels work, you can go back to your previous backup.
And remember, always make a backup before experimenting!