Which custom or official kernel should I use on SGS2? I'm using SGS2 with latest stock ICS ROM, but it has few bugs which I really hate, so I want to look at custom kernels which could help me in this.   

The main headache for me at the moment is I can't turn off my SGS2, when I try to do this my phone reboots itself so I need to pull out the battery to Switch it off. I'm getting hardly 24 hour battery backup while I'm not using too many calls or internet on my device, if I charged it 100% at night and wake up in morning then it drains out 5-10% battery. I have disabled auto sync, network connection etc which could be cause to drain out battery fast. Why I'm looking for custom kernels are due to

1: I want to get good battery life.
2: I want a good and stable performance.
3: Don't want to lag while playing games like Temple Run

I have heard two custom kernels for SGS2 are Siyah and Speedmod. Now I'm not sure which one should I use to for my phone for getting a good performance and battery life.

Can I flash kernel using stock recovery of my SGS2? And is it safe?
Upgrade your phone to latest JellyBean stock ROM and flash SpeedMod kernel from Odin. Right now is one of the most stable combinations for the Galaxy S II.

If you want more performance you can always install Siyah kernel and tweak it for your needs.

Also remember to do a full Nandroid backup before flashing anything and wipe /system, /data and /cache before installing JB from Odin.