I use them with functions that have too many arguments. It's not always feasible to fix the problem at the source.
damageDealt = calcDamage(weaponType, monsterType, DamageType.FIRE, null /* specialEffectFlags /, false / hasMagicTargeting */ );
It's definitely a code smell, but it's much better than nothing and I'm always glad to see these comments when I come back to the code.