I am not fond of block heaters as such as they need to be plugged in to an outlet to work. On the other hand I am loving the Edelbrächer engine heaters with timers. They will basically run off your fuel tank and keep your engine block warm and make sure your oil, coolant etc is up to operating temperature when you start the engine and that you cabin is nice and cosy, while a block heater only heats the coolant and thus is not perfect as it still takes some time for that coolant to actually heat the rest of the engine apart from the engine block.
Furthermore you don't have to plug it in as it runs off your trucks batteries.