As Andy MacKey says, draw each building as a polygon and tag with [`building=apartments`][1] to show that this is what the original purpose of the building (other tags may be appropriate, such as [`building:use=apartments`][2] if the building was originally built for another purpose, such as a factory, warehouse or church).
If the area of the apartment complex is widely known, and/or signposted as such, then you can also create a landuse=residential polygon and add the name of the complex to that polygon (example [here][3]).
If the name is not widely used, or only used in an address context, then just use this on address nodes. The preferred way to map addresses for apartments is to add them to a node which is the main entrance of the building (tag entrance=main). A typical combination will be `addr:flats=1-n; addr:interpolation=all; addr:housename=Complex Name; addr:street=Main Street`. The details of this have recently been discussed on the [tagging list][4], specifically the use of the interpolation tag for flats. There is good additional information from experienced address mappers in the posts.
Note that addr:flats is not shown on the main Carto (aka Mapnik) map style, the housenumber or name is instead. However the data are there and usable.
I have documented some of this on the wiki at [building=apartments][5] (including an example of a [converted church][6]).
[1]: https://wiki.openstreetmap.org/wiki/Tag:building%3Dapartments
[2]: http://taginfo.openstreetmap.org/tags/building%3Ause=apartments
[3]: http://www.openstreetmap.org/way/40448227
[4]: https://lists.openstreetmap.org/pipermail/tagging/2014-August/018888.htmlhttps://lists.openstreetmap.org/pipermail/tagging/2014-August/018888.html
[5]: https://wiki.openstreetmap.org/wiki/Tag:building%3Dapartments
[6]: http://www.openstreetmap.org/way/158513353