Which is more of a performance hit:
lots of columns with lots of NULLs, or
fewer columns with lots of JOINs?
It is purely depends on data you store, indexes you make and so on. No one can ensure you that one works better than another without knowing what are you storing. Generally normalization rules will "force" you separate data to different tables and user FKeys if you have large table but i disagree that it ALWAYS performs better than one big table. You can end with 6-7 level joins in dozens of queries that sometimes will cause errors because there much more chances to create an error in larger queries that in simple ones.
If you post some requirements of what you are doing maybe we can help you with designing the DB properly.