What properties must a utility function have such that we can define level sets and thus indifference curves?
Level sets are always well defined. No property of utility functions has to be assumed. For any utility level $\bar u$ just define the level set to be $\{x\in \mathbb{R}^n|U(x)=\bar u\}$. No property of $U$ must be assumed. This is well-defined regardless of the properties of $U$. Properties of $U$ are useful if one wants to derive specific properties of the level sets, but are not needed to define them.