We present a domain-specific, library based approach for parallelizing mesh-based data-parallel applications (like PDE solution) using the domain partitioning paradigm. Concepts are presented to formalize the notions of domain and mesh partitioning. Generic programming is used to implement reusable software components that encapsulate the common core of domain partitioning and make it available to application programmers. A novel aspect of our approach is its independence of the underlying sequential structured or unstructured mesh data structures, which make reuse of much pre-existing sequential application code possible.