Topological obstructions to existence of immersion Let $M$ be a smooth, non-compact manifold.
a) Can one always find a smooth, compact manifold $N$ with $\dim(N) = \dim(M)$ and a smooth embedding $i: M \to N$ ?
b) If not, are there some concrete general topological obstructions ?
c) What if we require $i$ only to be an immersion ?
Variants of these questions have thourougly been studied, for example, one can construct many examples of Riemannian manifolds $(M,g)$ for which there does not exist a conformal embedding/immersion into a compact Riemannian manifold of the same dimension. 
Even in the non-Riemannian setting, but requiring additionally that $i(M) = N \setminus \partial N$, there are obstructions to the existence of such an embedding $i: M \to N$ (for example, this is never possible if $\pi_1(M)$ is infinitley generated). 
But what about these slightly more general questions ?
 A: I believe that the following Riemannian manifold $M$ cannot be embedded to a compact manifold $N$:

Since a compact manifold $N$ has a finite atlas consisting of domains diffeomorphic to balls, and since you require $\dim M=\dim N$, the manifold $N$ would have a finite finite atlas which is not possible. This is only an idea and one needs to add details to my argument, but I think it can be done.
A: This is regarding (c) in the 2-dimensional case. 
First, let's consider the orientable case.
Every orientable (connected) noncompact surface  is a covering space of a genus 2 surface, and hence has an immersion to a compact surface. In fact, this also holds for closed connected orientable surfaces of negative euler characteristic, which excludes the 2-sphere and 2-torus.  
To see this, one may appeal to the classification of noncompact surfaces by Ian Richards. He proves that an orientable surface $S$ is determined by its space of ends $B(S)$ (Richards calls this the ``ideal boundary" of the surface), together with a closed subset $B'(S)$ which is the subset of non-planar ends (that admit no planar neighborhood). 
First let's consider the case of a planar surface with Cantor set ideal boundary. This is realized as the boundary of a tubular neighborhood of a cubic tree graph:

In turn, this graph covers a bipartite cubic graph with two vertices, whose thickened boundary is a genus 2 surface:

Each vertex of the cubic graph is dual to an pants, and each edge is dual to a curve of the pants decomposition. 
Moreover, the graph admits a Tait coloring, a 3-coloring of the edges so that each vertex is adjacent to edges with three distinct colors. Hence the cubic tree admits such a coloring by pullback. Moreover, one sees that a bipartite 3-edge colorable cubic graph has boundary of a thickening which is a cover of this surface. Moreover, this holds true if we allow the graph to have rays, corresponding to isolated points in the ideal boundary of the surface. To see, this, truncate each ray to get a graph with vertices of degree 3 and 1 (leaves). Truncate the corresponding boundary of thickening to get a surface with a boundary component for each leaf. This surface embeds in a subsurface of a cover of the genus 2 surface, with each boundary component mapping to one of the 3 curves on the genus 2 surface. Hence, the non-compact surface covers the genus 2 surface by attaching an infinite half-cylinder to each boundary component (coming from half of the annulus covering space corresponding to the curve). 
For the general planar case, we let $B(S)$ be a subset of  the Cantor set, the ideal boundary of the cubic tree, and take the convex subgraph of the cubic tree whose limit set is $B(S)$. This is a cubic bipartite graph with rays, and hence covers the genus 2 surface. To get the positive genus case, insert bigons into the tree to add genus to the ends of the ideal boundary of positive genus $B'(S)$ (or to give the . One may do this by taking the convex subtree of the cubic tree with boundary $B'(S)$, and inserting a bigon into every edge of this subtree inside of the subgraph spanned by $B(S)$. It is easy to extend the Tait coloring to this graph. If $B'(S)=\emptyset$, but $S$ has finite genus $g$, then insert $g$ bigons into the tree to get a graph whose thickening is the appropriate surface.  
This preserves bipartite and Tait colorability, and hence the thickened boundary still covers the genus 2 surface.     
For the non-orientable case, I'll describe the result without going into details. There is a unique closed non-orientable surface $\Sigma= P\#P\#P$ of Euler characteristic -1, Dyck's surface, the connect sum of three projective planes. One may also decompose $\Sigma=P\# T$, the connect sum of a projective plane and a torus (in fact, this is unique up to isotopy). In any case, this manifold bounds an orbifold handlebody, with spine $L$ an orbigraph which is a loop with an edge attached (topologically a tadpole graph), and order 2 cone point at one end (looking like a lollipop).

Any cubic graph with a perfect matching is a cover of $L$, where the non-matching edges cover the cycle (non-canonically, after some choice of orientation of each component), and each edge of the perfect matching maps as a 2-fold cover of the single orbifold edge in the tadpole graph by folding in half.  
Now, any tree has a perfect matching, so choose one for the cubic tree. 
Take the convex subset of the cubic tree corresponding to $B(S)$, giving a planar graph with the same end space. Let $B'(S)$ denote the subset of non-planar ends, and for each edge in the convex hull of $B'(S)$, add a bigon to each edge (and extending the perfect matching) to get a graph whose tubular neighborhood has the same set of ends and non-planar ends. Then let $B''(S)$ denote the non-orientable ends, and take the convex hull of $B''(S)$ to get the subgraph with non-orientable ends. Then insert a tadpole tail to each unmatched edge in this subgraph. One may see then that a tubular neighborhood (in the orbifold sense, i.e. connect summing with a $P^2$ for each tail/leaf) will give a surface with the correct set of ends, and which covers the Dyck surface (an extra bit of argument is needed for the isolated ends as before). 
One special case to consider is where $B''(S)=\emptyset$, $B'(S)\neq \emptyset$, but $S$ is non-orientable. In this case, there is a parity depending on the number of crosscaps of subsurfaces $A$ such that $S\backslash A$ is orientable. In this case, we add on $0$ or $1$ tails to get the appropriate parity of crosscaps.
