Steel is definitely the best defensive type. Even with the Steel nerf it still resists a lot. Offensively, I'd have to say either Ground or Fighting are the best. Both are strong against four types (Rock/Steel/Fire/Poison for Ground; Normal/Rock/Steel/Ice for Fighting) and have common, powerful, and easily obtainable moves (such as Earthquake and Focus Miss Blast) that many Pokemon can learn (particularly via TM).
In terms of worst types, Ice defensively and Normal offensively. Poison is near being the worst offensively, too, but a lot of moves poison or badly poison, and the latter is definitely not fun to deal with.
In terms of worst types, Ice defensively and Normal offensively. Poison is near being the worst offensively, too, but a lot of moves poison or badly poison, and the latter is definitely not fun to deal with.