For RNA-seq data analysis using DESeq2, a recommended method for batch effect removal is to introduce the batch in the design of the experiment as `design = ~ batch + condition`. 

The presence of batch was already known from experiment design and also detected by PCA biplot on the log transformed raw counts. Post DESeq2 how can we assure that the batches have been correctly taken care of? PCA plot on `counts(dds, normalized=TRUE)` did not how any changes.

Correcting the batch using ComBat brings out the desired grouping, however, I understand the output from Combat should not be used with DESeq2. Is there any other suggested tool for differential gene expression analysis post batch correction using ComBat?
You could include `batch` in the design formula, as you have done, and this will then be 'accounted for' (the statistical inferences will be adjusted for batch) when you perform a differential expression analysis testing for `condition`. `batch` is essentially treated as a covariate in the regression model, just as we do in association studies for `sex`, `smoking status`, `BMI`, etc.

If you then want to directly remove the batch effect for downstream analyses, you would do it on the variance-stabilised or rlog expression values using `limma::removeBatchEffect()`. There was a recent question on Bioconductor:
https://support.bioconductor.org/p/125386/#125387 (follow the link to the DESeq2 vignette)