How to restore an image from its filter output?
This type of problem is called deconvolution.
There are several approaches to tackle it, including Wiener filtering (another name for Wiener deconvolution), but there are many of them.
Wiener filtering is not reserved to deblurring: it is to cancel linear degradation operators.
As remarked by Aaron, it is very often an ill-posed problem and additional knowledge is required to find a good solution.
A classical approach very popular today is to use a regularized inverse problem approach.
The problem is stated as the sum of two terms $E(x) = d(Ax, y) + \lambda r(x)$:

$x$ is the variable;
$A$ is the degradation operator (the forward convolution);
$d(Ax,y)$ is a distance (for example, Euclidean distance) between the degradation of the current solution with respect to the observation $y$. It is called a data term;
$r(x)$ is a prior or regularization term that penalizes solutions $x$ that have a bad shape (usually, solutions $x$ that are not regular enough);
$\lambda$ is some weight that balances the effect of the two constraints.

Then, a good solution $x^\star$ is found by minimizing the functional $E(x)$.
See for example, have a look at Sparse Approximation via Iterative Thresholding for an application of this approach to sparse approximations.