The best way is to get the thread you wish to 'kill' to exit. You can do this by either posting a message to the thread (assuming you've got a message loop in the thread) or by using an event/semaphore to indicate to the thread that it can die.
The other way is to call TerminateThread on the thread handle.
The difference? Method 1 will allow the thread to release any resources etc (including any 'C' runtime clearup), Method 2 will pull the plug and not allow any clearup. Our experience is to use method 1 if at all possible and only resort to method 2 if all else fails.
By the way, if you're using ANY 'C' runtime calls, you must use beginthread/endthread rather than CreateThread/ExitThread; failure to do so results in small memory leaks.