Multiple Knapsack using Dynamic Programming
When all values are 1 and all capacities the same, this is the bin-packing problem, which is Strongly NP-Complete. Therefore, a sensible DP solution is probably not possible unless P=NP.

For very small m, say m=3, you can do:

dp[item][capacity1][capacity2][capacity3] = max{
     value[item] + dp[item - 1][capacity1 - weight[item]][capacity2][capacity3],
     value[item] + dp[item - 1][capacity1][capacity2 - weight[item]][capacity3],
     value[item] + dp[item - 1][capacity1][capacity2][capacity3 - weight[item]],
     dp[item - 1][capacity1][capacity2][capacity3]}