When one wall is sitting upon another you can be left with a seem. Using the join tool often cleans up this line. But If the walls wont join and leave an unwanted seam, it generally means that the walls have different materials or the faces don't line up.
One less obvious difference is the wall's structural setting under its instance properties. If one wall has 'Structure' ticked when the other does not, they won't join.