Regular Infinite Successor Cardinals

In set theory, we were given the following proof:

Suppose that A, B are cardinals and A=B^+. Then, A must have cofinality A.

Proof: Take C a subset of A and D=union(C). As C is an ordinal <A, it has size less than or equal to B. If there are A such sets, we are done. Assume there are less than or equal to B many such sets. As there are at most B many sets of size B, D must have size < A, so there exists a successor of D in A. Hence it is not cofinal.

Whilst this intuitively makes sense, such as not being able to take a finite number of finitely sized sets to make Omega/Aleph 0 as there is no maximal element, I can't quite grasp why this proves it. I especially cannot see where this argument breaks down for Aleph Omega. Would anyone be able to help explain why this proves it and why it breaks down for Aleph Omega (which has cofinality Omega, rather than Aleph Omega)?