Admittedly, this is a grammar point that I learned only recently (I kept hearing it in Japanese documentaries). ～きる and ～きれる are verb endings, attached to the i-stem of the verb. The kanji 切 is used for き in both words.
There are two main meanings:
1. to finish, to completely do something
Hitotsu no ryouri o tabekiranai uchi ni, mou tsugi no ryouri ga dete kimashita.
While I still haven't finished the first dish, the other dish was served.
Note that this construction is very similar to ～てしまう。However, ～きる doesn't have the implication of regret or unintentional action that ～てしまう does. When to use which? When there's a sense of intention, then ～きる seems to be the preferred form. When there's regret, ～てしまう is used. However, there are a lot of intermediate cases: for more details, please refer to Derek Schaab's reply.
2. to dare to do something
This is common for verbs like 思う and 言う. Literally, 思い切る and 言い切る mean to think or say something with finality. Personally, I treat these words as separate items in my vocabulary as they carry a certain nuance that other ～きる verbs don't.
Takai tokoro kara omoikitte tobiorimashita.
I made up my mind and jumped from a high place.
Iya na koto wa iya da to iikiru yuuki wo motenakereba naranai.
[You] need to have the courage to say that you don't want what you don't want.
This can be thought of as the potential form of ～きる = "can finish, can complete".
Konna ni takusan no ryouri wa totemo tabekiremasen.
I can't finish eating this much food.
Hyougen shikiretenai, suberikiretenai jibun ga kuyashikatta.
I was frustrated with myself because I couldn't express well, I couldn't glide well.
I've also heard this used in the positive sense (in some news program, I think), although I still have to look for an actual example.