Need help flashing kernel

view story

http://androidforums.com – Device: Stock ICS 4.0.4 / Stock Kernel / Rooted / Gonna get CWMR like right now. I want to know what the prerequisites for flashing a kernel are. I want to flash a custom kernel on it since I have been told that my device because of the stock kernel. One more thing I want to know is whether kernels have universal compatibility unlike ROMs. Can I flash any kernel on my device? It would be great if someone could suggest me a kernel suitable for my device. Is there any thing else I should know about? I would really appreciate some help! :) (General)