I prefer ISNULL, the cast is done to the first argument.
I use it e.g. with numeric type ISNULL(int_null,0). But, I should remember that with string ISNULL may be dangerous as in this case:
declare @C varchar(1)
select ISNULL(@c,'N/D')
Result:
N
instead of N/D